This document discusses aspect oriented programming (AOP) with Spring. It describes how AOP can be used to modularize cross-cutting concerns like logging and transaction management. It provides examples of implementing logging using both a naive approach and with AOP. It explains key AOP concepts like aspects, pointcuts, join points and advice. It also summarizes how AOP can be used with Spring through either the @AspectJ annotation style or XML schema-based style.
Rx: Curing Your Asynchronous Programming Blues | QCon LondonJiby John
At Microsofts Professional Developers Conference (PDC) a few years back, we introduced the LINQ project to solve the impedance mismatch between various data models by means of integrated query syntax in mainstream programming languages. Today, we’re seeing a rich ecosystem around LINQ providers that allow developers to reach out to many more data sources. However, there’s a lot of opportunity left to democratize even more data models. Based on the theory of monads, we’ll explore the incredibly powerful nature of query comprehensions to build reactive queries.
Asynchronous, event-driven "reactive" programming is way too hard in today's world of development tools and frameworks. The huge amount of manual and error-prone plumbing leads to incomprehensible and hard to maintain code. As we reach out to services in the cloud, the desire for asynchronous computation is ever increasing, requiring a fresh look on the problems imposed by reactive programming. Centered around the concept of observable data sources, Rx provides a framework that takes care of the hard parts of reactive programming. Instead of focusing on the hard parts, you now can start dreaming about the endless possibilities of composing queries over asynchronous data sources, piggybacking on convenient LINQ syntax.
In this session, we'll cover the design philosophy of Rx, rooted on the deep duality between the interactive IEnumerable interface and the new reactive IObservable interface in .NET 4.
From this core understanding, we'll start looking at various combinators and operators defined over observable collections, as provided by Rx, driving concepts home by a bunch of samples. Finally, if time permits, we'll look at the Reactive Extensions for JavaScript which allows us to take the concepts we already know from Rx and apply them to JavaScript and have deep integration with libraries such as jQuery. Democratizing asynchronous programming starts today. Don't miss out on it!
An introduction to the Java Persistence API 2.x (JPA). Namely, this set of slides first introduces the problem of impedance mismatch between the object model and the relation model. Then, the EntityManager's public interface is discussed, together with the parallelism between a persistence context and a L1 cache. The issue of encapsulating the different application's use cases (which are exposed by the service objects) is solved by means of the @Transactional annotation, which provides a declarative way of demarcating the application's transactional boundaries. It follows an in-depth explanation on how to integrate a local, container-managed EntityManager within an existing Spring MVC application, so as to correctly support the propagation of the persistence context throughout the different beans involved in the same transaction. We then turn our attention to the problem of mapping relationships, thus introducing the @OneToMany, @ManyToMany and @OneToOne annotations. The additional topics of how to cascade operations and how to support lazy loading are covered as well. The presentation concludes with a discussion on how to use both the Criteria and Query API (and JPQL) to query the underlying database.
The document provides an overview of the Java programming language by discussing its origins, goals, features, data types, classes, and code examples. It began as a language called Oak that aimed to be platform independent. Key goals included using object-oriented methodology and allowing programs to run on multiple operating systems. Features include being simple, secure, portable, robust, and having automatic garbage collection. It also compares Java to C++, highlighting differences in inheritance, overloading, and memory management. Code examples demonstrate basic Java syntax and handling exceptions.
This document discusses a lecture on propositional logic. It describes developing a program that allows a user to enter a propositional logic term and print it with minimal and maximal brackets. It provides background on propositional logic and Boolean logic. It also describes specifying an abstract data type for propositions in Maude, including defining sorts for propositions and operators.
The document discusses using the Java Native Interface (JNI) to call Java code from C++. It outlines the four main steps: 1) write the Java code, 2) compile the Java code, 3) write the C++ code to create a JVM, lookup and call the Java methods, and 4) run the native C++ application. Key aspects covered include using JNI data types, signatures for classes and methods, converting between Java and C strings, handling references and errors. Performance tips are also provided such as caching lookups and managing the JVM as a resource.
How To Code in C# The Complete Course. From data types to object orientation. Includes code samples and exercises.
Topics
Getting Started with C#
C# Language Fundamentals
Branching
Operators
Object-Orientated Programming
Classes and Objects
Inside Methods
Debugging
Inheritance and Polymorphism
Operator Overloading
Structs
Interfaces
Arrays
Collection Interfaces and Types
Strings
Throwing and Catching Exceptions
Delegates and EventsGenerics
New Language Features
The document provides an overview of core Java basics including data types, operators, keywords, comments, literals, type conversion and casting, classes and objects, constructors, class variables, constants, and static methods. It discusses primitive data types like int, float, boolean and their ranges. It also covers operators precedence and arithmetic, logical, and assignment operators.
This document discusses aspect oriented programming (AOP) with Spring. It describes how AOP can be used to modularize cross-cutting concerns like logging and transaction management. It provides examples of implementing logging using both a naive approach and with AOP. It explains key AOP concepts like aspects, pointcuts, join points and advice. It also summarizes how AOP can be used with Spring through either the @AspectJ annotation style or XML schema-based style.
Rx: Curing Your Asynchronous Programming Blues | QCon LondonJiby John
At Microsofts Professional Developers Conference (PDC) a few years back, we introduced the LINQ project to solve the impedance mismatch between various data models by means of integrated query syntax in mainstream programming languages. Today, we’re seeing a rich ecosystem around LINQ providers that allow developers to reach out to many more data sources. However, there’s a lot of opportunity left to democratize even more data models. Based on the theory of monads, we’ll explore the incredibly powerful nature of query comprehensions to build reactive queries.
Asynchronous, event-driven "reactive" programming is way too hard in today's world of development tools and frameworks. The huge amount of manual and error-prone plumbing leads to incomprehensible and hard to maintain code. As we reach out to services in the cloud, the desire for asynchronous computation is ever increasing, requiring a fresh look on the problems imposed by reactive programming. Centered around the concept of observable data sources, Rx provides a framework that takes care of the hard parts of reactive programming. Instead of focusing on the hard parts, you now can start dreaming about the endless possibilities of composing queries over asynchronous data sources, piggybacking on convenient LINQ syntax.
In this session, we'll cover the design philosophy of Rx, rooted on the deep duality between the interactive IEnumerable interface and the new reactive IObservable interface in .NET 4.
From this core understanding, we'll start looking at various combinators and operators defined over observable collections, as provided by Rx, driving concepts home by a bunch of samples. Finally, if time permits, we'll look at the Reactive Extensions for JavaScript which allows us to take the concepts we already know from Rx and apply them to JavaScript and have deep integration with libraries such as jQuery. Democratizing asynchronous programming starts today. Don't miss out on it!
An introduction to the Java Persistence API 2.x (JPA). Namely, this set of slides first introduces the problem of impedance mismatch between the object model and the relation model. Then, the EntityManager's public interface is discussed, together with the parallelism between a persistence context and a L1 cache. The issue of encapsulating the different application's use cases (which are exposed by the service objects) is solved by means of the @Transactional annotation, which provides a declarative way of demarcating the application's transactional boundaries. It follows an in-depth explanation on how to integrate a local, container-managed EntityManager within an existing Spring MVC application, so as to correctly support the propagation of the persistence context throughout the different beans involved in the same transaction. We then turn our attention to the problem of mapping relationships, thus introducing the @OneToMany, @ManyToMany and @OneToOne annotations. The additional topics of how to cascade operations and how to support lazy loading are covered as well. The presentation concludes with a discussion on how to use both the Criteria and Query API (and JPQL) to query the underlying database.
The document provides an overview of the Java programming language by discussing its origins, goals, features, data types, classes, and code examples. It began as a language called Oak that aimed to be platform independent. Key goals included using object-oriented methodology and allowing programs to run on multiple operating systems. Features include being simple, secure, portable, robust, and having automatic garbage collection. It also compares Java to C++, highlighting differences in inheritance, overloading, and memory management. Code examples demonstrate basic Java syntax and handling exceptions.
This document discusses a lecture on propositional logic. It describes developing a program that allows a user to enter a propositional logic term and print it with minimal and maximal brackets. It provides background on propositional logic and Boolean logic. It also describes specifying an abstract data type for propositions in Maude, including defining sorts for propositions and operators.
The document discusses using the Java Native Interface (JNI) to call Java code from C++. It outlines the four main steps: 1) write the Java code, 2) compile the Java code, 3) write the C++ code to create a JVM, lookup and call the Java methods, and 4) run the native C++ application. Key aspects covered include using JNI data types, signatures for classes and methods, converting between Java and C strings, handling references and errors. Performance tips are also provided such as caching lookups and managing the JVM as a resource.
How To Code in C# The Complete Course. From data types to object orientation. Includes code samples and exercises.
Topics
Getting Started with C#
C# Language Fundamentals
Branching
Operators
Object-Orientated Programming
Classes and Objects
Inside Methods
Debugging
Inheritance and Polymorphism
Operator Overloading
Structs
Interfaces
Arrays
Collection Interfaces and Types
Strings
Throwing and Catching Exceptions
Delegates and EventsGenerics
New Language Features
The document provides an overview of core Java basics including data types, operators, keywords, comments, literals, type conversion and casting, classes and objects, constructors, class variables, constants, and static methods. It discusses primitive data types like int, float, boolean and their ranges. It also covers operators precedence and arithmetic, logical, and assignment operators.
The Java programming language includes five simple arithmetic operators: addition (+), subtraction (-), multiplication (*), division (/), and modulo (%). It also includes unary operators like increment (++), decrement (--), negation (!), and complement (~). Comparison operators return a boolean and include <, <=, >, >=, and instanceof. Assignment operators assign values to variables. Shift operators (<<, >>, >>>) perform left and right bitwise shifts on integral data types.
This document provides biographical information about the speaker Matt Stine and outlines the topics he will cover in his presentation. Stine will discuss how software designs tend to degrade over time due to various factors, and how following the SOLID principles of object-oriented design can help address this problem and make designs more functional in nature. He will also cover trends in how software systems evolve, different programming paradigms, and the ongoing quest for software design "best practices."
The document discusses key concepts in the Interface Definition Language (IDL) used in Common Object Request Broker Architecture (CORBA). It covers IDL ground rules like case sensitivity, syntax, comments, and modules. It also describes various IDL data types including primitive types like boolean, char, floating point, integer types and constructed types like enumerations, structures, unions, and interfaces. Methods, parameters, direction qualifiers like in, out, inout are explained. The document also discusses one-way methods and how they allow non-blocking remote procedure calls.
Ekeko Technology Showdown at SoTeSoLa 2012Coen De Roover
This document describes Ekeko, an applicative logic meta-programming library for Clojure's core.logic that allows specifying code characteristics and querying code bases declaratively. Ekeko provides relations that can represent syntactic, structural, control flow and data flow properties of code derived from the Eclipse JDT and SOOT analyses. For example, it contains a relation to find expressions that may alias at runtime. Ekeko allows incrementally building up logic queries to identify code idioms. Queries are composed of goals that core.logic searches over to return substitutions. This provides a way to programmatically query and transform code bases using logic programming.
The document provides information about a JavaScript course including:
1. The course consists of 5 lectures and 5 labs and is evaluated based on projects, assignments, labs and quizzes.
2. The lecture outline covers introduction to JavaScript, syntax, built-in objects and functions.
3. JavaScript was invented by Brendan Eich at Netscape and first appeared in the Netscape Navigator browser in 1995.
Android JNI/NDK allows developers to use native code like C/C++ code in Android applications. It does this through the Java Native Interface (JNI) which provides a way to create Java objects and call Java methods from native code. The Native Development Kit (NDK) includes tools to compile C/C++ code for the Android platform. JNI allows accessing native methods and data types from Java code. It provides functions for loading native libraries, registering native methods, and manipulating objects, strings, classes and fields between the Java and native environments. Exceptions must be handled when using JNI to ensure stable applications.
Introducing Data Types & Operators
Skills gained:
1- Familiarity with data types
2- Modeling Memories
3- More on Expressions & Operators
This is part of VHDL 360 course
The document discusses a lecture on machine learning algorithms. It covers recapping the ID3 algorithm, machine learning biases including language bias and preference bias, and decision tree learning. It also compares the ID3 and CANDIDATE-ELIMINATION algorithms, noting that ID3 has a preference bias while CANDIDATE-ELIMINATION has a restriction bias.
This presentation introduces some advanced concepts of generics in Java. These slides introduce the following concepts:
- Generic classes and methods
- Type variable bounds
- Type erasure process
- Generics and inheritance
- Wildcard types
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This document provides an agenda for a presentation on esoteric LINQ and structural madness. The agenda includes background information on data structures like graphs, trees, and lists. It also covers design patterns like iterator, observer, visitor, and specification. The document then provides primers on LINQ and how it can be applied to functions, graphs, and specifications. The presentation aims to explore advanced and unconventional applications of LINQ through functional combinators and predicate logic.
Presentation derived from the "What's new in Python 2.6" document on http://www.python.org/ including much reformatting for presenting and presenter notes.
Please download the Keynote original - that way the presentation notes aren't burned into the slides.
Vibrant Technologies is headquarted in Mumbai,India.We are the best Java training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Java classes in Mumbai according to our students and corporators
Contact Us On : http://vibranttechnologies.co.in/
This document provides an overview of key concepts in the Java programming language, including:
- Java is an object-oriented language that is simpler than C++ and supports features like platform independence.
- The Java development environment includes tools for compiling, debugging, and running Java programs.
- Java programs work with basic data types like int and double, as well as user-defined classes, variables, and arrays.
- The document explains operators, control structures, formatting output, and the basics of classes and objects in Java.
JavaScript and popular programming paradigms (OOP, AOP, FP, DSL). Overview of the language to see what tools we can leverage to reduce complexity of our projects.
This part goes over language features and looks at OOP and AOP with JavaScript.
The presentation was delivered at ClubAJAX on 2/2/2010.
Blog post: http://lazutkin.com/blog/2010/feb/5/exciting-js-1/
Continued in Part II: http://www.slideshare.net/elazutkin/exciting-javascript-part-ii
iOS development Crash course in how to build an native application for iPhone.
i will be start from beginning till publishing on Apple Store step by step.
this session # 1 after the intro
The document discusses buying a supercomputer for a university in the UK. It describes the UK funding scene for supercomputers, which involves nationally-run major supercomputers and obtaining time on them through competitive grants. It then discusses the author's experience in purchasing a supercomputer for the University of Bath, including putting together a case for management, issuing a request for proposals, and the timelines for delivery and acceptance of the system between 2008 and 2009. The supercomputer purchased consisted of 100 nodes with a total of 800 Intel processor cores.
This document summarizes key aspects of voting, lobbying, and government agencies in the United States:
1) It lists various elected positions that citizens can vote for from the President down to local mayors and council members. It also discusses initiatives, referendums, and recalls that allow public voting on issues, laws, and removing officials from office.
2) It provides a brief history of voting rights expansions in the US from only white male property owners in the early 1820s to all races, women, 18-year-olds, and Native Americans at different points over time.
3) It notes that agencies like the FDA and EPA are created by Congress to make specific rules regarding issues like
The document discusses a worst case "bear" scenario where high government debt levels constrain economic growth over the long term, similar to Japan's "lost decade". Key points:
- Global debt has doubled over the past decade and is at all-time highs as a percentage of GDP.
- A Japanese-style recovery of persistent debt, weak growth, low rates could occur if debt is not reduced.
- The US fiscal situation in particular looks dire, with debt projected to exceed 100% of GDP by 2010.
- Recommendations focus on defensive assets that perform well in risk-averse, low-growth environments.
The Java programming language includes five simple arithmetic operators: addition (+), subtraction (-), multiplication (*), division (/), and modulo (%). It also includes unary operators like increment (++), decrement (--), negation (!), and complement (~). Comparison operators return a boolean and include <, <=, >, >=, and instanceof. Assignment operators assign values to variables. Shift operators (<<, >>, >>>) perform left and right bitwise shifts on integral data types.
This document provides biographical information about the speaker Matt Stine and outlines the topics he will cover in his presentation. Stine will discuss how software designs tend to degrade over time due to various factors, and how following the SOLID principles of object-oriented design can help address this problem and make designs more functional in nature. He will also cover trends in how software systems evolve, different programming paradigms, and the ongoing quest for software design "best practices."
The document discusses key concepts in the Interface Definition Language (IDL) used in Common Object Request Broker Architecture (CORBA). It covers IDL ground rules like case sensitivity, syntax, comments, and modules. It also describes various IDL data types including primitive types like boolean, char, floating point, integer types and constructed types like enumerations, structures, unions, and interfaces. Methods, parameters, direction qualifiers like in, out, inout are explained. The document also discusses one-way methods and how they allow non-blocking remote procedure calls.
Ekeko Technology Showdown at SoTeSoLa 2012Coen De Roover
This document describes Ekeko, an applicative logic meta-programming library for Clojure's core.logic that allows specifying code characteristics and querying code bases declaratively. Ekeko provides relations that can represent syntactic, structural, control flow and data flow properties of code derived from the Eclipse JDT and SOOT analyses. For example, it contains a relation to find expressions that may alias at runtime. Ekeko allows incrementally building up logic queries to identify code idioms. Queries are composed of goals that core.logic searches over to return substitutions. This provides a way to programmatically query and transform code bases using logic programming.
The document provides information about a JavaScript course including:
1. The course consists of 5 lectures and 5 labs and is evaluated based on projects, assignments, labs and quizzes.
2. The lecture outline covers introduction to JavaScript, syntax, built-in objects and functions.
3. JavaScript was invented by Brendan Eich at Netscape and first appeared in the Netscape Navigator browser in 1995.
Android JNI/NDK allows developers to use native code like C/C++ code in Android applications. It does this through the Java Native Interface (JNI) which provides a way to create Java objects and call Java methods from native code. The Native Development Kit (NDK) includes tools to compile C/C++ code for the Android platform. JNI allows accessing native methods and data types from Java code. It provides functions for loading native libraries, registering native methods, and manipulating objects, strings, classes and fields between the Java and native environments. Exceptions must be handled when using JNI to ensure stable applications.
Introducing Data Types & Operators
Skills gained:
1- Familiarity with data types
2- Modeling Memories
3- More on Expressions & Operators
This is part of VHDL 360 course
The document discusses a lecture on machine learning algorithms. It covers recapping the ID3 algorithm, machine learning biases including language bias and preference bias, and decision tree learning. It also compares the ID3 and CANDIDATE-ELIMINATION algorithms, noting that ID3 has a preference bias while CANDIDATE-ELIMINATION has a restriction bias.
This presentation introduces some advanced concepts of generics in Java. These slides introduce the following concepts:
- Generic classes and methods
- Type variable bounds
- Type erasure process
- Generics and inheritance
- Wildcard types
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This document provides an agenda for a presentation on esoteric LINQ and structural madness. The agenda includes background information on data structures like graphs, trees, and lists. It also covers design patterns like iterator, observer, visitor, and specification. The document then provides primers on LINQ and how it can be applied to functions, graphs, and specifications. The presentation aims to explore advanced and unconventional applications of LINQ through functional combinators and predicate logic.
Presentation derived from the "What's new in Python 2.6" document on http://www.python.org/ including much reformatting for presenting and presenter notes.
Please download the Keynote original - that way the presentation notes aren't burned into the slides.
Vibrant Technologies is headquarted in Mumbai,India.We are the best Java training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Java classes in Mumbai according to our students and corporators
Contact Us On : http://vibranttechnologies.co.in/
This document provides an overview of key concepts in the Java programming language, including:
- Java is an object-oriented language that is simpler than C++ and supports features like platform independence.
- The Java development environment includes tools for compiling, debugging, and running Java programs.
- Java programs work with basic data types like int and double, as well as user-defined classes, variables, and arrays.
- The document explains operators, control structures, formatting output, and the basics of classes and objects in Java.
JavaScript and popular programming paradigms (OOP, AOP, FP, DSL). Overview of the language to see what tools we can leverage to reduce complexity of our projects.
This part goes over language features and looks at OOP and AOP with JavaScript.
The presentation was delivered at ClubAJAX on 2/2/2010.
Blog post: http://lazutkin.com/blog/2010/feb/5/exciting-js-1/
Continued in Part II: http://www.slideshare.net/elazutkin/exciting-javascript-part-ii
iOS development Crash course in how to build an native application for iPhone.
i will be start from beginning till publishing on Apple Store step by step.
this session # 1 after the intro
The document discusses buying a supercomputer for a university in the UK. It describes the UK funding scene for supercomputers, which involves nationally-run major supercomputers and obtaining time on them through competitive grants. It then discusses the author's experience in purchasing a supercomputer for the University of Bath, including putting together a case for management, issuing a request for proposals, and the timelines for delivery and acceptance of the system between 2008 and 2009. The supercomputer purchased consisted of 100 nodes with a total of 800 Intel processor cores.
This document summarizes key aspects of voting, lobbying, and government agencies in the United States:
1) It lists various elected positions that citizens can vote for from the President down to local mayors and council members. It also discusses initiatives, referendums, and recalls that allow public voting on issues, laws, and removing officials from office.
2) It provides a brief history of voting rights expansions in the US from only white male property owners in the early 1820s to all races, women, 18-year-olds, and Native Americans at different points over time.
3) It notes that agencies like the FDA and EPA are created by Congress to make specific rules regarding issues like
The document discusses a worst case "bear" scenario where high government debt levels constrain economic growth over the long term, similar to Japan's "lost decade". Key points:
- Global debt has doubled over the past decade and is at all-time highs as a percentage of GDP.
- A Japanese-style recovery of persistent debt, weak growth, low rates could occur if debt is not reduced.
- The US fiscal situation in particular looks dire, with debt projected to exceed 100% of GDP by 2010.
- Recommendations focus on defensive assets that perform well in risk-averse, low-growth environments.
The document provides an overview of a business intelligence and market watch course being offered at Advancia Business School in Paris. It discusses various topics that will be covered including data sources, data warehousing, online analytical processing (OLAP), observing-orienting-deciding-acting (OODA) loops, and multidimensional data representation. It also lists required and optional reading materials for the course.
Brovoinet is a telecommunications provider offering voice services worldwide over internet connections. They provide unlimited calling plans to over 40 countries starting at $9.99 per month, as well as business plans and IP phones. Their network is powered by partnerships with major carriers to ensure high quality voice services.
The document discusses the Red Queen theory which states that organisms must constantly adapt and evolve to survive. It then discusses the challenges of building software products and ecosystems that meet business and user needs. Finally, it emphasizes that focusing on creating remarkable user experiences that people want to share with others is key to building a successful product.
Shape 2013 developing multi targeting windows store and windows phone appsJose Luis Latorre Millas
This document provides an agenda for a presentation on developing multi-targeting Windows 8 and Windows Phone 8 apps. The agenda includes discussing the importance of multi-targeting, an ABC on multi-targeting, modeling apps using MVVM, and creating a sample multi-targeting app to demonstrate sharing code across platforms using portable class libraries, applying MVVM, and creating platform-specific views. The presentation aims to provide best practices for multi-targeting apps across Windows 8 and Windows Phone 8 through code sharing and proper design patterns like MVVM.
The document summarizes a Slovak fashion night event held on May 14, 2009 in New York City. It introduced designs by several Slovak and American designers. The event also featured musical performances and art works. Proceeds from the event supported a nonprofit organization for people with disabilities. VIP tickets cost $150 and provided additional access and gifts. The goal of the event was to expose American audiences to Slovak culture and enable collaboration between artists from Slovakia and the US.
The document summarizes a cultural event called the "Velvet Revolution Party" organized by the Consulate General of Slovakia and other organizations. The event commemorated the 17th of November 1989, when peaceful student protests in Prague sparked larger demonstrations that ultimately led to the collapse of Communist rule in Czechoslovakia and a transition to democracy. The cultural program for the party included a dance performance and music to celebrate this non-violent revolution. Proceeds from the event were intended to benefit the National Czech and Slovak Museum in Iowa after it suffered damage from flooding in 2008.
Think With Your Brain (Revised Release Of Do We Need Business Intelligence) A...Pozzolini
The document discusses the importance of thinking creatively and dynamically when gathering and using business intelligence. It encourages thinking outside the box rather than being static or dogmatic, and focusing on demanding teamwork rather than just the individual. Business intelligence is defined as the timely, accurate, high-value, and actionable insights and processes used to obtain them that can help organizations make better decisions.
This is the first of a series of conferences for French Executives in the the attempt to open their eyes and their minds in the search for an answer to the future following the dictum "if you can\'t beat them....join them and swim with the sharks"
Using WordPress as a website (not a blog)Sara Rosso
A brief introduction to WordPress, a versatile open source CMS software that can be easily configured to be used as a website.
This presentation was originally given to the Foreign Press in Milan in June 2011.
Este documento describe una teoría sobre el origen catalán del descubrimiento de América. Según la teoría, Cristóbal Colón era en realidad catalán y lideró la expedición con marineros catalanes. Sin embargo, Castilla se apropió del descubrimiento y borró la evidencia del papel de Cataluña, robando así todo un continente de la historia catalana. La teoría afirma que esta gran censura histórica explica muchos misterios sobre los registros originales del descubrimiento.
OpenMI is an open standard that facilitates linking of hydrological models and modules. It allows components like rainfall, rainfall-runoff, and river models to be linked together to pass data between them. OpenMI provides a standardized interface that models implement, allowing them to be connected in different configurations without being hardcoded. It works by having each component query the exchange items it provides and requires, and links are created between matching inputs and outputs. When the simulation runs, components request data from each other through these links. This makes models more interoperable and reusable.
This document provides an overview of object-oriented programming concepts using C++. It discusses key OOP concepts like objects, classes, encapsulation, inheritance, polymorphism, and dynamic binding. It also covers C++ specific topics like functions, arrays, strings, modular programming, and classes and objects in C++. The document is intended to introduce the reader to the fundamentals of OOP using C++.
1. The document discusses the evolution of the C# programming language from versions 1.0 through 4.0, highlighting new features introduced in each version such as generics, LINQ, dynamic programming, and covariance/contravariance.
2. It provides code examples to illustrate key concepts like generics, LINQ queries, dynamic binding, and how covariance/contravariance enables safer usage of generics.
3. The last section summarizes some of the main features introduced in each C# version from managed code to generics to dynamic programming.
This document introduces IDAPython, an extension for IDA that brings Python scripting capabilities to aid in binary analysis. It provides examples of using IDAPython to iterate through functions, segments, instructions, calculate cyclomatic complexity, and automate IDA. The examples demonstrate basic usage and provide a starting point for interested individuals. The document also includes a function reference section describing the various IDAPython API functions.
This document discusses IOKit security on Apple operating systems and introduces two tools: Kitlib and KextHelper. Kitlib is a Python wrapper that provides convenient functions for writing IOKit fuzzers in Python. It uses SWIG and ctypes to interface with IOKit calls with low performance overhead. KextHelper is an IDA plugin that helps analyze OSX kernel extensions (KEXTs). The document also provides background on IOKit security concepts and case studies of past IOKit vulnerabilities found by the author and their company.
The final dream of every developer is creating his own programming language. Today it is possible to realize that dream with a reasonable effort. In addition to that is also possible to leverage the JVM to make a language that can reuse a huge amount of libraries. In this presentation we are going to see what elements do we need to build our own language, with a compiler for the JVM. This is not only a lot of fun but it can be also useful in practice, to build Domain Specific Languages that compiles to bytecode and can be used together with mainstream languages in larger applications.
The document discusses principles of clean code, beginning with definitions of clean code from various authors. It outlines key principles like the single responsibility principle and open/closed principle. It then covers sections on meaningful naming, functions, and classes. For functions, it recommends they be small, do one thing, avoid flag arguments, and have no side effects. For classes, it advocates for small size, encapsulation, high cohesion and low coupling following the single responsibility principle.
The document appears to be a block of random letters with no discernible meaning or purpose. It consists of a series of letters without any punctuation, formatting, or other signs of structure that would indicate it is meant to convey any information. The document does not provide any essential information that could be summarized.
This document provides an overview and introduction to the C# programming language and .NET framework. It covers key C# concepts like its syntax, type system, classes, interfaces, collections and more. It also discusses .NET concepts like assemblies, garbage collection, and tools for C# development like Visual Studio.NET. The document contains sample C# code and concludes with a Hello World example to demonstrate basic C# syntax.
The document provides an overview of the iOS development platform. It describes the core components of iOS including Cocoa Touch, Core OS, Core Services, and Media frameworks. It explains concepts like the Model-View-Controller pattern and the iOS application structure and life cycle. Key topics like Objective-C classes, methods, properties, dynamic binding, and common frameworks like Foundation are also summarized.
Introduction to developing or migrating models to be compliant to the OpenMI Standard. OpenMI is an open standard which allows dynamic linking of numerical models, such as river models rainfall-runoff models and so on. See also:
http://www.lictek.com
Introduction to developing or migrating models to be compliant to the OpenMI Standard. OpenMI is an open standard which allows dynamic linking of numerical models, such as river models rainfall-runoff models and so on. See also:
http://www.lictek.com
This document summarizes key aspects of Windows 8 for .NET developers. It discusses the Metro style app architecture, which uses XAML for views and C#, C++, JavaScript, or VB for controllers and models. It also covers the .NET profile for Metro style apps, which is a subset of the full .NET Framework that removes APIs not applicable to these apps. The document provides details on namespaces, classes, and technologies included in this profile and how existing .NET code can be ported to it. It also discusses replaced technologies like WCF, XML, and threading APIs.
The Android Native Development Kit (NDK) allows developers to write and embed native code like C/C++ in Android applications. It provides toolchains and headers to allow compilation of native code into libraries that can be called from Java code using the Java Native Interface. The NDK benefits applications requiring intensive CPU operations, games, or porting existing C/C++ code to Android. However, native code also increases complexity, so the NDK should only be used when truly needed rather than for preference of language. Sample projects demonstrate using the NDK to incorporate native code for tasks like threading and improving performance of algorithms.
Cvpr2010 open source vision software, intro and training part-iii introduct...zukun
The document introduces the Generic Image Library (GIL), Boost libraries, and generic programming. It provides an overview of GIL for image processing and Boost for peer-reviewed C++ libraries. It describes how generic programming separates algorithms from data structures and allows algorithms to work with different types through templates and polymorphism. Accumulating a data set is used as an example to compare object-oriented and generic programming approaches.
The document discusses Java wrapper classes. Wrapper classes wrap primitive data types like int, double, boolean in objects. This allows primitive types to be used like objects. The main wrapper classes are Byte, Short, Integer, Long, Character, Boolean, Double, Float. They provide methods to convert between primitive types and their wrapper objects. Constructors take primitive values or strings to create wrapper objects. Methods like parseInt() convert strings to primitive types.
Aspect-oriented programming (AOP) is a programming paradigm that allows separating cross-cutting concerns into distinct modules called aspects. AspectJ is an extension to Java that implements AOP. It allows defining pointcuts that specify join points in the program flow and writing advice code to be executed at those points. Aspects modularize cross-cutting concerns like logging, profiling, and security that would otherwise be tangled throughout the codebase. AspectJ does not replace object-oriented programming but complements it by providing another way to structure programs.
The document discusses how to code for accelerometer and Core Location in Objective-C. It provides code snippets for reading accelerometer data using UIAccelerometer and handling orientation changes. It also explains how to get the user's current location using the Core Location framework by initializing a CLLocationManager instance and setting a delegate to receive location updates.
C# 4.0 introduced several new features to the C# language including dynamic programming, optional and named parameters, and improved support for covariance and contravariance. It also added the ability to invoke members of dynamic objects at runtime instead of compile-time. The .NET Framework 4.0 implemented these language changes and added support for variance in interfaces like IEnumerable and delegates.
Similar to How To Make Your Component Compliant (20)
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Zilliz
Join us to introduce Milvus Lite, a vector database that can run on notebooks and laptops, share the same API with Milvus, and integrate with every popular GenAI framework. This webinar is perfect for developers seeking easy-to-use, well-integrated vector databases for their GenAI apps.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Monitoring Java Application Security with JDK Tools and JFR Events
How To Make Your Component Compliant
1. How to make your model OpenMI compliant
Jan Gregersen LicTek / DHI
2. Connecting things - When two and two is five
My model
USB
• Provides freedom of choice for the users
• Provides opportunities for suppliers
Standard
Introduction Jan Gregersen
3. How does OpenMI work : OpenMI is OO
Very short introduction to Object Oriented programming
Interface Geometry
string ID
double DistanceToPoint (double x, double y)
My model
implements implements
Class Polygon Class Polyline
String ID String ID
double Area double GetDistanceToPoint(double x, double y)
bool IsPointInside(double x, double y)
double GetOverlapping Area(Polygon polygon
double GetDistanceToPoint(double x, double y)
inherits
Class Rectangle
double diagonal
How does OpenMI work Jan Gregersen
4. How does OpenMI work : ILinkableComponent
From outside all OpenMI compliant
components look the same
OpenMI.Standard.ILinkableComponent
void Initialize(IArgument[] properties)
string ComponentID
string ComponentDescription
RR model string ModelID
string ModelDescription
ITimeSpan TimeHorizon
IInputExchangeItem GetInputExchangeItem(int index)
IOutputExchangeItem GetOutputExchangeItem(int idex)
int InputExchangeItemCount
int OutputExchangeItemCount
River model
void AddLink (ILink link)
void RemoveLink(string linkID)
string Validate()
void Prepare()
IValueSet GetValues(ITime time, string linkID)
ITimeStamp EarliestInputTime
void Finish()
void Dispose()
How does OpenMI work Jan Gregersen
5. How does OpenMI work : GUI Add model
void Initialize(IArgument[] properties)
string ComponentID
string ComponentDescription
string ModelID
string ModelDescription
My model ITimeSpan TimeHorizon
IInputExchangeItem GetInputExchangeItem(int index)
IOutputExchangeItem GetOutputExchangeItem(int idex)
int InputExchangeItemCount
int OutputExchangeItemCount
void AddLink (ILink link)
void RemoveLink(string linkID)
string Validate()
void Prepare()
IValueSet GetValues(ITime time, string linkID)
ITimeStamp EarliestInputTime
1. Read OMI file void Finish()
2. Create component void Dispose()
3. Invoke (call) Initialize
1. Component will read input files and initialize
How does OpenMI work Jan Gregersen
6. How does OpenMI work : The OMI file
<?xml version=quot;1.0quot;?>
<LinkableComponent Type=“RainfallRunoffModelLCquot; Assembly=quot;..binRainfallRunoffModel.dllquot;>
<Arguments>
<Argument Key=“Pathquot; ReadOnly=quot;truequot; Value=“..dataquot; />
</Arguments>
My model
</LinkableComponent>
How does OpenMI work Jan Gregersen
7. How does OpenMI work : Model properties
void Initialize(IArgument[] properties)
string ComponentID
string ComponentDescription
My model string ModelID
string ModelDescription
ITimeSpan TimeHorizon
IInputExchangeItem GetInputExchangeItem(int index)
IOutputExchangeItem GetOutputExchangeItem(int idex)
int InputExchangeItemCount
int OutputExchangeItemCount
void AddLink (ILink link)
void RemoveLink(string linkID)
string Validate()
void Prepare()
IValueSet GetValues(ITime time, string linkID)
ITimeStamp EarliestInputTime
void Finish()
void Dispose()
How does OpenMI work Jan Gregersen
8. How does OpenMI work : Create and add link
void Initialize(IArgument[] properties)
string ComponentID
string ComponentDescription
string ModelID
string ModelDescription
ITimeSpan TimeHorizon
IInputExchangeItem GetInputExchangeItem(int index)
My model IOutputExchangeItem GetOutputExchangeItem(int idex)
int InputExchangeItemCount
int OutputExchangeItemCount
void AddLink (ILink link)
void RemoveLink(string linkID)
string Validate()
void Prepare()
IValueSet GetValues(ITime time, string linkID)
ITimeStamp EarliestInputTime
void Finish()
void Dispose()
1. Query and display exchange items
2. User selects output and input
3. Create a link object
4. Add the link to both components
How does OpenMI work Jan Gregersen
9. How does OpenMI work : ExchangeItems
My model
Where What
How
How does OpenMI work Jan Gregersen
10. How does OpenMI Work : GetValues()
void Initialize(IArgument[] properties)
string ComponentID
string ComponentDescription
string ModelID
string ModelDescription
ITimeSpan TimeHorizon
IInputExchangeItem GetInputExchangeItem(int index)
My model IOutputExchangeItem GetOutputExchangeItem(int idex)
int InputExchangeItemCount
int OutputExchangeItemCount
void AddLink (ILink link)
void RemoveLink(string linkID)
string Validate()
void Prepare()
IValueSet GetValues(ITime time, string linkID)
ITimeStamp EarliestInputTime
GetValues(time)
void Finish()
void Dispose()
GetValues(time)
How does OpenMI work Jan Gregersen
11. How does OpenMI Work : GetValues()
ID-Based link Geo-referenced bi-directional link
My model
GetValues(time)
My model
GetValues(time)
How does OpenMI work Jan Gregersen
13. How to migrate models
How to migrate models Jan Gregersen
14. How most models are organized
User Interface
Run Write
My model
Input file
Read
Engine
Write
Output file
How to migrate models Jan Gregersen
15. OpenMI is linking models
User Interface
Run Write
My model
Input file
Read
Engine
Write
Output file
How to migrate models Jan Gregersen
16. User Interface
OpenMI.Standard
Run Write <<ILinkableComponent>>
My model
Input file
Read
Engine
Write
Output file
How to migrate models Jan Gregersen
17. How do I set values ?
User Interface
OpenMI.Standard
Run Write <<ILinkableComponent>>
My model
Input file
void Initialize(IArgument[] properties)
string ComponentID
string
Read
string
ComponentDescription
ModelID
GetValues()
string ModelDescription
ITimeSpan TimeHorizon
int InputExchangeItemCount
Engine
IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex)
int OutputExchangeItemCount
Some
IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) model
void Write AddLink (ILink link)
void RemoveLink(string linkID)
string Validate()
GetValues()
void Prepare()
Output file
IValueSet GetValues(ITime time, string linkID)
ITimeStamp EarliestInputTime
void Finish()
void Dispose()
How to migrate models Jan Gregersen
18. How to migrate models:
SDK: Balancing stability and flexibility
The OpenMI Standard • Provided by OA
• Rigid release proceedure
• The OpenMI.Standard interfaces
• Non frequent releases
• The OpenMI standard definition
• The one and only Standard
• XSD’s
• Makes components linkable
• Provided by OATC
• Flexible release proceedures
• Frequent releases
The OpenMI SDK • One of many
• Source code C# (and Java) • Makes OpenMI easier
• Default implementaion • OATC.SDK targeting models
• Wrapper • Not required
•Targeting developers • Components compliant to
same version of the standard
can be linked regardless of
which SDK is used.
How to migrate models Jan Gregersen
19. User Interface
Run Write
My model OpenMI.Standard
Input file <<ILinkableComponent>>
Oatc.OpenMI.Sdk
<<IEngine>>
Read GetValues()
Engine SDK Some
(Wrapper) model
Write
GetValues()
Output file
How to migrate models Jan Gregersen
20. // -- Execution control methods (Inherited from IRunEngine) --
void Initialize(Hashtable properties);
bool PerformTimeStep();
void Finish();
//-- Time methods (Inherited from IRunEngine) --
ITime GetCurrentTime();
User Interface ITime GetInputTime(string QuantityID, string ElementSetID);
ITimeStamp GetEarliestNeededTime();
Run Write //-- Data access methods (Inherited from IRunEngine) --
void SetValues(string QuantityID, string ElementSetID, IValueSet values);
IValueSet GetValues(string QuantityID, string ElementSetID);
My model OpenMI.Standard
Input file <<ILinkableComponent>>
//-- Component description methods (Inherited from IRunEngine) --
double GetMissingValueDefinition();
String GetComponentID();
Oatc.OpenMI.Sdk string GetComponentDescription();
<<IEngine>>
Read GetValues()
// -- Model description methods --
string GetModelID();
string GetModelDescription();
Engine SDK
double GetTimeHorizon(); Some
(Wrapper) model
// -- Exchange items --
Write int GetInputExchangeItemCount();
int GetOutputExchangeItemCount();
GetValues()
org.OpenMI.Backbone GetInputExchangeItem(int exchangeItemIndex);
org.OpenMI.Backbone GetOutputExchangeItem(int exchangeItemIndex);
Output file
How to migrate models Jan Gregersen
21. Buffers results from the engine core Mapping of values associated to one
ElementSet to be represented on
another ElementSet
User Interface
Mapping of values associated to one array of
times /timespans to values represented on
another array of times/timespans •Link administration
Run Write
•Exception handling
My model •Events handling
OpenMI.Standard
Input file <<ILinkableComponent>>
t t •And more..
Oatc.OpenMI.Sdk
<<IEngine>>
Read GetValues()
Engine SDK Some
(Wrapper) model
Write
GetValues()
Output file
How to migrate models Jan Gregersen
22. Oatc.OpenMI.Sdk.Wrapper.IEngine
// -- Execution control methods (Inherited from IRunEngine) --
void Initialize(Hashtable properties);
bool PerformTimeStep();
void Finish();
//-- Time methods (Inherited from IRunEngine) --
OpenMI.Standard.IlinkableComponent ITime GetCurrentTime();
ITime GetInputTime(string QuantityID, string ElementSetID);
void Initialize(IArgument[] properties) ITimeStamp GetEarliestNeededTime();
string ComponentID
//-- Data access methods (Inherited from IRunEngine) --
string ComponentDescription
string ModelID void SetValues(string QuantityID, string ElementSetID, IValueSet values);
string ModelDescription IValueSet GetValues(string QuantityID, string ElementSetID);
ITimeSpan TimeHorizon
//-- Component description methods (Inherited from IRunEngine) --
IInputExchangeItem GetInputExchangeItem(int index)
double GetMissingValueDefinition();
IOutputExchangeItem GetOutputExchangeItem(int idex)
int InputExchangeItemCount String GetComponentID();
int OutputExchangeItemCount string GetComponentDescription();
// -- Model description methods --
void AddLink (ILink link)
void RemoveLink(string linkID) string GetModelID();
string Validate() string GetModelDescription();
double GetTimeHorizon();
void Prepare()
IValueSet GetValues(ITime time, string linkID) // -- Exchange items --
ITimeStamp EarliestInputTime
int GetInputExchangeItemCount();
void Finish() int GetOutputExchangeItemCount();
void Dispose() org.OpenMI.Backbone GetInputExchangeItem(int exchangeItemIndex);
org.OpenMI.Backbone GetOutputExchangeItem(int exchangeItemIndex);
How to migrate models Jan Gregersen
23. Migration design pattern
<< interface >>
OpenMI.Standard.ILinkableComponent
<< interface >>
Oatc.OpenMI.Sdk.Wrapper.IEngine
Implements
Implements
<< abstract class >>
Oatc.OpenMI.Sdk.Backbone.LinkableComponent IEngine
<< Class >>
Rivermodel.EngineWrapper
Inherits
access
access
<< abstract class >>
Oatc.OpenMI.Sdk.Wrapper.LinkableEngine create
<< Class >>
RiverModel.Engine
Inherits
access
<< Class >>
Rivermodel.LinkableComponent << dll >>
Fortran Engine
How to migrate models Jan Gregersen
24. Five steps to a compliant model
1. Make sure that your engine is a Dll not a Exe
2. Separate initialization, Perform time step, and finalization
3. Implement IEngine
4. Attach the SDK wrapper
5. Done
How to migrate models Jan Gregersen