Real World IronPython
|
|
|
- Franklin Fleming
- 10 years ago
- Views:
Transcription
1 Real World IronPython Dynamic Languages on.net Michael Foord Resolver Systems
2 Introduction Developing with Python since 2002 Joined Resolver Systems in 2006 Programming full time with IronPython Creating a programmable.net spreadsheet wwww.ironpythoninaction.com
3 Stick 'em up Who has experience with IronPython? Regular Python? Dynamic languages in general? Calibration: Who has never used a dynamic language? IronPython IronPython is a Python compiler
4 Runs on.net and Mono (in fact included in Mono) Originally created by Jim Hugunin Now being developed by a Microsoft team Version 2.0 is built on the Dynamic Language Runtime (Python 2.5) Runs on Silverlight IronPython is a port of the popular programming language Python to the.net framework. The project was started by Jim Hugunin when he wanted to write an article 'Why the.net Framework is a Bad Platform for Dynamic Languages'. Jim had already implemented Python for the JVM (Jython), so he knew that Virtual Machines intended to run static languages could support dynamic languages, and he wanted to know why.net had a reputation for being bad. As it turned out he discovered that the CLR was actually a pretty good VM for dynamic languages and his 'toy' implementation of Python actually ran faster than CPython! He demoed this fledgling version of IronPython to Microsoft, got hired, and the rest is history. Why is it called IronPython? It Runs On.NET! (A backronym by John Lam, but it's pretty good.) Microsoft are serious about IronPython and dynamic languages for the.net framework. Microsoft have built IronPython support into various projects. IronPython is very well integrated with the.net framework. Strings in Python are.net string objects, and they have the Python methods that you would expect. The same is true for the other types. We can also take.net assemblies and import classes / objects from them, and use them with no wrapping needed. Dynamic Languages on.net A framework for creating Dynamic Languages Including language interoperation The DLR will be part of.net 4 (C# 4.0 / VB.NET 10) DLR Languages IronPython IronRuby Managed JScript (closed source, Silverlight only) IronScheme (community project on codeplex) Dynamic languages are:
5 "...a broad term to describe a class of high level programming languages that execute at runtime many common behaviours that other languages might perform during compilation." Type validation Attribute lookup Type creation Method dispatch Inheritance lookup Parsing All deferred until runtime - a trade-off Deferring things until runtime that a statically typed language would do at compile time is the tradeoff you make when using a dynamically typed language - this is where both the costs and the benefits come from. Parsing and byte-code compilation: this is where eval and the ability to easily generate / execute new code at runtime comes from. Type validation - types are not verified up front. They are verified when they are used - languages like Python and Ruby are strongly typed languages, not weakly typed. Late bound member lookup - this brings about some interesting capabilities in dynamically typed languages. We can change the implementation at runtime, or even add new implementations - a practise called monkey patching (a term originating in the Python community where the practise is looked down on but it can be particularly useful testing). It also means we can program against the capabilities of objects instead of needing strict interfaces to keep the compiler happy. This is called duck typing. If an object walks like a duck, and quacks like a duck then our code is free to treat it like a duck. Even function and class creation is done at runtime. Typically in dynamic languages functions and classes are first class objects. They can be created at runtime and we can even trigger effects when they are created. This enables simple use of programming techniques like functional programming and metaprogramming. Object creational patterns like function and class factories are trivially easy in many dynamically typed languages.
6 OMGWTF? Adding types at runtime? Changing the inheritance tree? Adding or deleting methods from types and from objects? No type safety?! Reassign to self. class?!?! That sounds crazy and dangerous! Life as a developer is hard enough as it is. Clearly, writing bug-free code is a difficult problem to solve in the general case. Why on Earth would we want to let go of our most fundamental safety aids, compilation checks? Shouldn't we be striving for more safety, not less?
7 Less Safety is Sometimes Good Yes, it is more dangerous. That doesn't make it bad. The upside is it is more flexible. What does type safety buy? Type safety does eliminate particular classes of errors. For example, the compiler can assure you that when using the return value from your integer addition method, 1+1 always returns an integer. But this is not sufficient to confirm that an application actually works.
8 In order to have confidence about this, the very best method known to todays computer science is automated tests. Unit tests and acceptance tests. Unit tests are always needed, and they are much more detailed about run-time behaviour than static type checking can ever be. Another show of hands, who uses unit tests? Who uses them thoroughly? Test-driven development? With tests in place confirming correct values, then checks of correct type are now redundant, and can safely be removed. - paraphrased from Jay Fields, Ruby luminary, card shark. Money Quote In 5 years, we'll view compilation as the weakest form of unit testing. Stuart Halloway In practice, the benefits of type safety turn out, unexpectedly, to be fairly minimal. Often overlooked, the costs of maintaining type safety turn out to be extremely high. IronPython.NET Integration IronPython demo!
9 >>> from System import Array >>> int_array = Array[int]((1, 2, 3, 4, 5)) >>> int_array System.Int32[](1, 2, 3, 4, 5) >>> dir(int_array) ['Add', 'Address', 'AsReadOnly', 'BinarySearch', 'Clear', 'Clone', 'ConstrainedCopy', 'Contains', 'ConvertAll', 'Copy', 'CopyTo', 'Count', 'CreateInstance', 'Equals', 'Exists', 'Find', 'FindAll', 'FindIndex', 'FindLast', 'FindLastIndex', 'ForEach', 'Get',...] IronPython Studio Resolver One.NET programmable spreadsheet Programming model is central to the application Written in and programmed with IronPython Use.NET and Python libraries Put arbitrary objects in the grid Create spreadsheet systems with RunWorkbook Export spreadsheets as programs Import and export Excel spreadsheets RunWorkbook effectively embeds the calculation engine and lets you override values in a spreadsheet before calculation and fetch the results afterwards. This allows you to treat spreadsheets as data sources or as functions that encapsulate calculations.
10 In Action Can you maintain large projects in dynamic languages? I'd like to answer this question by showing you what Resolver Systems has done with IronPython. The three founders of Resolver all worked in the London financial services industry. In that business it is very common for people who aren't programmers to need to build business applications. They don't want to have to go the IT department - they need to be able to create applications for very short term opportunities. Currently they're all using Excel. Excel is a great application, but beyond a certain level of complexity, the traditional spreadsheet metaphor - of cells in a grid with macros off to one side - breaks down. So the idea for Resolver One was born - a program where the data and formulae in the grid are turned into code (in an interpreted language) and code that the user writes is executed as part of the spreadsheet. So how did we end up using IronPython and in fact writing the whole application in IronPython? Late 2005 two developers started work on Resolver. They chose.net, and Windows Forms for the user interface, as the development platform, a logical choice for a desktop application. And if you're writing a.net business application, you write it in C# right? That's what the developers assumed. But having an interpreted language embedded into Resolver is a central part to the way Resolver One works, so they started evaluating scripting language engines available for.net. At this time IronPython was at version 0.7 I think. What particularly impressed them about IronPython was the quality of the.net integration and they decided to see how far they could get writing the whole application in IronPython. That was almost two years ago. Resolver One is now written (almost) entirely in IronPython, there's over lines of IronPython production code, plus over lines in the test framework. Resolver One is free for non-commercial use and can be downloaded from the Resolver Systems website.
11 Why Use IronPython? Application development (desktop, web or Silverlight) Dynamically explore assemblies and classes System administration / scripting Prototyping / rapid development User scripting of.net Applications or extensible architectures Business rules stored as text or using a custom DSL Intellipad The Intellipad tool, part of the Oslo framework, is extensible with (and partly written in) '{Microsoft.Intellipad}OpenExplorerAtBuffer', 'Ctrl+B') def OpenExplorerAtBufferExecute(target, sender, args): file = sender.buffer.uri.absolutepath exists = File.Exists(file) if exists: Process.Start(Path.GetDirectoryName(file)) Almost all commands that are available in Intellipad have been written in Python using the object model exposed by the application. The Python files are scattered inside the Settings directory. Commands.py contains most of the commands for Intellipad. Configuration specific commands are placed in their respective directories (Emacs or VI or VisualStudio). A command definition consists of three parts. A "Executed" function definition, that acts as the command handler and provides the logic for the command An optional "CanExecute" function definition, that determines when the command is enabled A command wireup, that is done by calling the "Common.Command" function. This is the where the Executed and CanExecute are wired together along with the Command Name and default key binding Crack.NET Debugger and application explorer: interact with winforms / WPF applications.
12 Crack.NET is a runtime debugging and scripting tool that gives you access to the internals of a WPF or Windows Forms application running on your computer. Crack.NET allows you to walk the managed heap of another.net application, and inspect all values on all objects/types.
13 Embedding IronPython You have 15 seconds to memorize this... This shows the major DLR Hosting API components. The most important ones are: ScriptEngine ScriptRuntime ScriptScope ScriptSource CompiledCode The ScriptEngine The Python convenience class from IronPython.Hosting allows us to create a ready configured Python ScriptEngine: >>> import clr >>> clr.addreference('ironpython') >>> from IronPython.Hosting import Python >>> engine = Python.CreateEngine() >>> engine <Microsoft.Scripting.Hosting.ScriptEngine object at 0x... [Microsoft.Scripting.Hosting.ScriptEngine]> If we were hosting IronRuby we would use the Ruby class and we would get a ScriptEngine specialised for the Ruby language. Executing Code The ScriptSource represents source code and the ScriptScope is a namespace. We use them both to execute Python code - executing the code (the ScriptSource) in a namespace (a ScriptScope): SourceCodeKind st = SourceCodeKind.Statements; string source = "print 'Hello World'"; script = eng.createscriptsourcefromstring(source, st); scope = eng.createscope(); script.execute(scope); The namespace holds the variables that the code creates in the process of executing it.
14 The ScriptSource has Compile method which returns a CompiledCode object. This also has an Execute method that takes a ScriptScope. This really is an overview - there are lots of other ways of working with these classes. For example we could execute an expression instead of statements and directly return the result of evaluating the expression. See chapter 15 of IronPython in Action for a more in depth look. Setting and Fetching Variables To IronPython the ScriptScope is a module - a namespace that maps names to objects. int value = 3; scope.setvariable("name", value); script.execute(scope); int result = scope.getvariable<int>("name"); Reflector is a handy tool for finding your way around the available APIs. There are other useful methods on the SciptScope like TryGetVariable, GetVariableNames, ContainsVariable, etc. So as well as code creating variables we can pre-poulate the namespace with variables that the code has access to. This is one way a hosting application can expose an API / object model to code it executes. The generic versions of these APIs are great if we are fetching a standard.net object (but watch out for runtime exceptions if the object we are fetching is of the wrong type and can't be cast to the type you've specified) - but what if we want a dynamic object like an instance of a Python class? This is the 'type problem'; how can we use and interact with dynamic objects from statically typed.net languages?
15 The ScriptedTurtle A simple example of adding IronPython scripting to an application. Embedding IronPython into this app is only a handful of lines of code. Available for download (along with several other good articles on the subject) from: Error Handling The SyntaxErrorException is a general DLR exception. There are also Python specific ones. catch (SyntaxErrorException e) { ExceptionOperations eo; eo = engine.getservice<exceptionoperations>(); string error = eo.formatexception(e); string caption;
16 } string msg = "Syntax error in \"{0}\""; caption = String.Format(msg, Path.GetFileName(path)); MessageBox.Show(error, caption, MessageBoxButtons.OK, MessageBoxIcon.Error); SyntaxErrorException is a generic DLR error. There are Python specific errors as well defined in IronPython.Runtime.Exceptions. We can also have a 'catch all' clause that catches 'Exception'. Errors raised in Python code can be caught as Python exceptions or standard.net exceptions where there is an equivalent. Dynamic Operations Solve the type problem by avoiding it until the last minute! (With a little help from ObjectOperations.) ObjectOperations ops = engine.operations; object SomeClass = scope.getvariable("someclass"); object instance = ops.call(someclass); object method = ops.getmember(instance, "method"); int result = (int)ops.call(method, 99); We can pull objects in as 'object' and then use ObjectOperations to perform dynamic operations on them. This calls back into the DLR to perform the operation. Here we pull out a pure Python class, instantiates it, and call a method on it (casting the result to an integer). ObjectOperations has many more methods, for example for numeric operations or equality operations, that honour the language semantics of the DLR objects involved. This is something that gets a lot easier in.net 4. Functions as Delegates IronPython will do casting for us when we pull objects out of the scope. So we can pull Python functions out as.net delegates if we specify the argument and return types. //get a delegate to the python function Func<int, bool> IsOdd; IsOdd = scope.getvariable<func<int, bool>>("isodd"); //invoke the delegate bool b = IsOdd(1); Python definition of IsOdd would look something like: IsOdd = lambda x: bool(x % 2) This code pulls out a function that takes an integer as the argument and returns a bool. We use the Func delegate to get a callable delegate on the.net side, and the IronPython engine casts the function to this type for us. The last type in the generic specification Func<int, bool> is the return type. This example is from the DLR Hosting Blog. This technique is particularly useful for writing business rules that you want to be able to change at runtime.
17 C# Dynamic Dynamic operations with the dynamic keyword: not only method calls, but also field and property accesses, indexer and operator calls and even delegate invocations can be dispatched dynamically (at runtime): dynamic d = GetDynamicObject( ); d.m(7); // calling methods d.f = d.p; // getting and settings fields and properties d[ one ] = d[ two ]; // getting and setting through indexers int i = d + 3; // calling operators string s = d(5,7); // invoking as a delegate Example from: When compiled this generates IL that calls into the DLR. The DLR either uses reflection to do the lookups, or if the object is a DLR object then it used the correct semantics for the language they are implemented in. (The cost of course is that you can get runtime errors if you call methods that don't exist or attempt to perform invalid operations.) The advantage of this is that it makes it much easier to use DLR objects from.net languages. For example see:
18 IronPython in Action wwww.ironpythoninaction.com Questions?
Introducing the.net Framework 4.0
01_0672331004_ch01.qxp 5/3/10 5:40 PM Page 1 CHAPTER 1 Introducing the.net Framework 4.0 As a Visual Basic 2010 developer, you need to understand the concepts and technology that empower your applications:
Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.
Objectif This six-day instructor-led course provides students with the knowledge and skills to develop applications in the.net 3.5 using the C# 3.0 programming language. C# is one of the most popular programming
Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)
Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB) Course Number: 4995 Length: 5 Day(s) Certification Exam There are no exams associated with this course. Course Overview
VOC Documentation. Release 0.1. Russell Keith-Magee
VOC Documentation Release 0.1 Russell Keith-Magee February 07, 2016 Contents 1 About VOC 3 1.1 The VOC Developer and User community................................ 3 1.2 Frequently Asked Questions.......................................
BPM Scheduling with Job Scheduler
Document: BPM Scheduling with Job Scheduler Author: Neil Kolban Date: 2009-03-26 Version: 0.1 BPM Scheduling with Job Scheduler On occasion it may be desired to start BPM processes at configured times
Cross-platform IL code manipulation library for runtime instrumentation of.net applications
Cross-platform IL code manipulation library for runtime instrumentation of.net applications master thesis subject for Markus Gaisbauer (0256634) in cooperation with dynatrace software GmbH July 5, 2007
Functional UI testing of Adobe Flex RIA. Viktor Gamov [email protected] August, 12 2011
Functional UI testing of Adobe Flex RIA Viktor Gamov [email protected] August, 12 2011 1 Agenda Why to test? How to test? What the automated testing means? Automated testing tools Automated
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Custom Tasks for SAS. Enterprise Guide Using Microsoft.NET. Chris Hemedinger SAS. Press
Custom Tasks for SAS Enterprise Guide Using Microsoft.NET Chris Hemedinger SAS Press Contents About This Book... ix About The Author... xiii Acknowledgments...xv Chapter 1: Why Custom Tasks... 1 Why Isn
Visual Basic. murach's TRAINING & REFERENCE
TRAINING & REFERENCE murach's Visual Basic 2008 Anne Boehm lbm Mike Murach & Associates, Inc. H 1-800-221-5528 (559) 440-9071 Fax: (559) 440-0963 [email protected] www.murach.com Contents Introduction
CRM Setup Factory Installer V 3.0 Developers Guide
CRM Setup Factory Installer V 3.0 Developers Guide Who Should Read This Guide This guide is for ACCPAC CRM solution providers and developers. We assume that you have experience using: Microsoft Visual
Rakudo Perl 6 on the JVM. Jonathan Worthington
Rakudo Perl 6 on the JVM Jonathan Worthington About Rakudo Most complete and most actively developed Perl 6 implementation Compiler + built-ins 66 monthly releases to date 10-20 code contributors per release
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
CLOUD COMPUTING & WINDOWS AZURE
CLOUD COMPUTING & WINDOWS AZURE WORKSHOP Overview This workshop is an introduction to cloud computing and specifically Microsoft s public cloud offering in Windows Azure. Windows Azure has been described
NLUI Server User s Guide
By Vadim Berman Monday, 19 March 2012 Overview NLUI (Natural Language User Interface) Server is designed to run scripted applications driven by natural language interaction. Just like a web server application
The Hacker Strategy. Dave Aitel [email protected]. Security Research
1 The Hacker Strategy Dave Aitel [email protected] Security Research Who am I? CTO, Immunity Inc. History: NSA->@stake -> Immunity Responsible for new product development Vulnerability Sharing Club
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP
Programming in C# with Microsoft Visual Studio 2010
Course 10266A: Programming in C# with Microsoft Visual Studio 2010 Course Details Course Outline Module 1: Introducing C# and the.net Framework This module explains the.net Framework, and using C# and
v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com
v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com Table of Contents Table of Contents................................................................ ii 1. Overview 2. Workflow...................................................................
http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx
ASP.NET Overview.NET Framework 4 ASP.NET is a unified Web development model that includes the services necessary for you to build enterprise-class Web applications with a minimum of coding. ASP.NET is
How to extend Puppet using Ruby
How to ext Puppet using Ruby Miguel Di Ciurcio Filho [email protected] http://localhost:9090/onepage 1/43 What is Puppet? Puppet Architecture Facts Functions Resource Types Hiera, Faces and Reports
DEVELOP. Choosing a Development Tool. Microsoft Dynamics GP. White Paper
DEVELOP Microsoft Dynamics GP Choosing a Development Tool White Paper This paper provides guidance when choosing which development tool to use to create an integration for Microsoft Dynamics GP. Date:
Web Services API Developer Guide
Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
Extending XSLT with Java and C#
Extending XSLT with Java and C# The world is not perfect. If it were, all data you have to process would be in XML and the only transformation language you would have to learn would XSLT. Because the world
Programming in C# with Microsoft Visual Studio 2010
Introducción a la Programación Web con C# en Visual Studio 2010 Curso: Introduction to Web development Programming in C# with Microsoft Visual Studio 2010 Introduction to Web Development with Microsoft
How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
Continuous Integration with CruiseControl.Net
Continuous Integration with CruiseControl.Net Part 3 Paul Grenyer CruiseControl.Net One of the first rules of writing is to write about something you know about. With the exception of the user guide for
Programmabilty. Programmability in Microsoft Dynamics AX 2009. Microsoft Dynamics AX 2009. White Paper
Programmabilty Microsoft Dynamics AX 2009 Programmability in Microsoft Dynamics AX 2009 White Paper December 2008 Contents Introduction... 4 Scenarios... 4 The Presentation Layer... 4 Business Intelligence
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Lecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER
BarTender Integration Methods Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER Contents Introduction 3 Integrating with External Data 4 Importing Data
09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5
Technical Note Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5 In the VMware Infrastructure (VI) Perl Toolkit 1.5, VMware
Authoring for System Center 2012 Operations Manager
Authoring for System Center 2012 Operations Manager Microsoft Corporation Published: November 1, 2013 Authors Byron Ricks Applies To System Center 2012 Operations Manager System Center 2012 Service Pack
EMC Documentum Application Connectors Software Development Kit
EMC Documentum Application Connectors Software Development Kit Version 6.8 Development Guide EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Legal Notice Copyright
EXAM - 70-518. PRO:Design & Develop Windows Apps Using MS.NET Frmwk 4. Buy Full Product. http://www.examskey.com/70-518.html
Microsoft EXAM - 70-518 PRO:Design & Develop Windows Apps Using MS.NET Frmwk 4 Buy Full Product http://www.examskey.com/70-518.html Examskey Microsoft 70-518 exam demo product is here for you to test the
MetaXSSploit. Bringing XSS in Pentesting A journey in building a security tool. Claudio Criscione @paradoxengine
` MetaXSSploit Bringing XSS in Pentesting A journey in building a security tool Claudio Criscione @paradoxengine /me No Aff XSS And how a security tool is born! Relevant? Web Application Security Statistics
Quartz.Net Scheduler in Depth
Quartz.Net Scheduler in Depth Introduction What is a Job Scheduler? Wikipedia defines a job scheduler as: A job scheduler is a software application that is in charge of unattended background executions,
CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler
CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler 1) Operating systems a) Windows b) Unix and Linux c) Macintosh 2) Data manipulation tools a) Text Editors b) Spreadsheets
Developing Algo Trading Applications with SmartQuant Framework The Getting Started Guide. 24.02.2014 SmartQuant Ltd Dr. Anton B.
Developing Algo Trading Applications with SmartQuant Framework The Getting Started Guide 24.02.2014 SmartQuant Ltd Dr. Anton B. Fokin Introduction... 3 Prerequisites... 3 Installing SmartQuant Framework...
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
Introducing Micro Focus Net Express to Develop and Extend COBOL Applications within.net White Paper
Introducing Micro Focus Net Express to Develop and Extend COBOL Applications within.net White Paper Abstract This paper will introduce the capabilities of Micro Focus Net Express that allows COBOL to operate
Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010
Introducing Apache Pivot Greg Brown, Todd Volkert 6/10/2010 Speaker Bios Greg Brown Senior Software Architect 15 years experience developing client and server applications in both services and R&D Apache
CrossPlatform ASP.NET with Mono. Daniel López Ridruejo [email protected]
CrossPlatform ASP.NET with Mono Daniel López Ridruejo [email protected] About me Open source: Original author of mod_mono, Comanche, several Linux Howtos and the Teach Yourself Apache 2 book Company:
Choosing a Development Tool
Microsoft Dynamics GP 2013 R2 Choosing a Development Tool White Paper This paper provides guidance when choosing which development tool to use to create an integration for Microsoft Dynamics GP. Date:
Ruby on Rails. Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder. -Dheeraj Potlapally
Ruby on Rails Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder -Dheeraj Potlapally INTRODUCTION Page 1 What is Ruby on Rails Ruby on Rails is a web application framework written
Microsoft Windows PowerShell v2 For Administrators
Course 50414B: Microsoft Windows PowerShell v2 For Administrators Course Details Course Outline Module 1: Introduction to PowerShell the Basics This module explains how to install and configure PowerShell.
Upgrading a Visual Basic Application to.net:
Upgrading a Visual Basic Application to.net: The e-volutionvisualizer Example Introduction The emergence of a new technology brings the opportunity to develop new and more powerful applications. The cost
Debugging Multi-threaded Applications in Windows
Debugging Multi-threaded Applications in Windows Abstract One of the most complex aspects of software development is the process of debugging. This process becomes especially challenging with the increased
Python, C++ and SWIG
Robin Dunn Software Craftsman O Reilly Open Source Convention July 21 25, 2008 Slides available at http://wxpython.org/oscon2008/ Python & C++ Comparisons Each is a general purpose programming language,
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Desktop, Web and Mobile Testing Tutorials
Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,
USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE
USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE Gonzalo Garcia VP of Operations, USA Property of GMV All rights reserved INTRODUCTION Property of GMV All rights reserved INTRODUCTION
maximizing IT productivity
HTML5 jquery.net SharePoint Silverlight ASP.NET Consulting & Training Time is money and productive software developers save time. The Wahlin Group specializes in helping software developers learn development
Hands-On Lab. Embracing Continuous Delivery with Release Management for Visual Studio 2013. Lab version: 12.0.21005.1 Last updated: 12/11/2013
Hands-On Lab Embracing Continuous Delivery with Release Management for Visual Studio 2013 Lab version: 12.0.21005.1 Last updated: 12/11/2013 CONTENTS OVERVIEW... 3 EXERCISE 1: RELEASE MANAGEMENT OVERVIEW...
Rake Task Management Essentials
Rake Task Management Essentials Andrey Koleshko Chapter No. 8 "Testing Rake Tasks" In this package, you will find: A Biography of the author of the book A preview chapter from the book, Chapter NO.8 "Testing
COMMON All Day Lab 10/16/2007 Hands on VB.net and ASP.Net for iseries Developers
COMMON All Day Lab 10/16/2007 Hands on VB.net and ASP.Net for iseries Developers Presented by: Richard Schoen Email: [email protected] Bruce Collins Email: [email protected] Presentor Information
The P3 Compiler: compiling Python to C++ to remove overhead
The P3 Compiler: compiling Python to C++ to remove overhead Jared Pochtar 1. Introduction Python is a powerful, modern language with many features that make it attractive to programmers. As a very high
Using EDA Databases: Milkyway & OpenAccess
Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1 Outline History Choice Of Scripting
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is
Chris Panayiotou Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is the current buzz in the web development
ActiveVOS Server Architecture. March 2009
ActiveVOS Server Architecture March 2009 Topics ActiveVOS Server Architecture Core Engine, Managers, Expression Languages BPEL4People People Activity WS HT Human Tasks Other Services JMS, REST, POJO,...
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference
VB.NET - WEB PROGRAMMING
VB.NET - WEB PROGRAMMING http://www.tutorialspoint.com/vb.net/vb.net_web_programming.htm Copyright tutorialspoint.com A dynamic web application consists of either or both of the following two types of
ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM
ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM Ashish Patel, Lead Eclipse Committer for ARM, IBM Corporation Oliver E. Cole, President, OC Systems, Inc. The Eclipse Test and Performance Tools
Title Release Notes PC SDK 5.14.03. Date 2012-03-30. Dealt with by, telephone. Table of Content GENERAL... 3. Corrected Issues 5.14.03 PDD...
1/15 Table of Content GENERAL... 3 Release Information... 3 Introduction... 3 Installation... 4 Hardware and Software requirements... 5 Deployment... 6 Compatibility... 7 Updates in PC SDK 5.14.03 vs.
CAPIX Job Scheduler User Guide
CAPIX Job Scheduler User Guide Version 1.1 December 2009 Table of Contents Table of Contents... 2 Introduction... 3 CJS Installation... 5 Writing CJS VBA Functions... 7 CJS.EXE Command Line Parameters...
Firewall Builder Architecture Overview
Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.
CATALOG OF CLASSES IT and Technical Courses
CATALOG OF CLASSES IT and Technical Courses Table of Contents CATALOG OF CLASSES... 1 Microsoft... 1 10135BC... 1 Configuring, Managing and Troubleshooting Microsoft Exchange Server 2010 Service Pack 2...
Automated Configuration of Open Stack Instances at Boot Time
Automated Configuration of Open Stack Instances at Boot Time N Praveen 1, Dr. M.N.Jayaram 2 Post Graduate Student 1, Associate Professor 2, EC Department, SJCE, Mysuru, India Abstract: Cloud Computing
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you
Programming in Python. Basic information. Teaching. Administration Organisation Contents of the Course. Jarkko Toivonen. Overview of Python
Programming in Python Jarkko Toivonen Department of Computer Science University of Helsinki September 18, 2009 Administration Organisation Contents of the Course Overview of Python Jarkko Toivonen (CS
Cleo Communications. CUEScript Training
Cleo Communications CUEScript Training Introduction RMCS Architecture Why CUEScript, What is it? How and Where Scripts in RMCS XML Primer XPath Pi Primer Introduction (cont.) Getting Started Scripting
Introduction. Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications
Introduction Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications 1 Computer Software Architecture Application macros and scripting - AML,
Advanced Web Application Development using Microsoft ASP.NET
Course Outline Other Information MS2311 Days 3 Starting Time 9:00 Finish Time 4:30 Lunch & refreshments are included with this course. Advanced Web Application Development using Microsoft ASP.NET Course
Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer
Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development
Windows PowerShell Cookbook
Windows PowerShell Cookbook Lee Holmes O'REILLY' Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword Preface xvii xxi Part I. Tour A Guided Tour of Windows PowerShell
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
SQL and Programming Languages. SQL in Programming Languages. Applications. Approaches
SQL and Programming Languages SQL in Programming Languages Read chapter 5 of Atzeni et al. BD: Modelli e Linguaggi di Interrogazione and section 8.4 of Garcia-Molina The user does not want to execute SQL
C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.
Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES DCOM - COM+ Peter R. Egli INDIGOO.COM. indigoo.com. 1/20 Rev. 1.
COM, DCOM - COM+ DCOM, COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES Peter R. Egli INDIGOO.COM 1/20 Contents 1. Evolution of COM 2. COM, DCOM, ActiveX, OLE, COM+ 3. Structure of
Operating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15
The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR Chapter 15 Microsoft is continually reengineering its existing application and platform base. Started with VBX, continued with OLE, ODBC, ActiveX,
Programming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
Using the Query Analyzer
Using the Query Analyzer Using the Query Analyzer Objectives Explore the Query Analyzer user interface. Learn how to use the menu items and toolbars to work with SQL Server data and objects. Use object
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems Except where otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution Share Alike 3.0 United
IBM WebSphere ILOG Rules for.net
Automate business decisions and accelerate time-to-market IBM WebSphere ILOG Rules for.net Business rule management for Microsoft.NET and SOA environments Highlights Complete BRMS for.net Integration with
Version Control Your Jenkins Jobs with Jenkins Job Builder
Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren [email protected] Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from
BarTender s ActiveX Automation Interface. The World's Leading Software for Label, Barcode, RFID & Card Printing
The World's Leading Software for Label, Barcode, RFID & Card Printing White Paper BarTender s ActiveX Automation Interface Controlling BarTender using Programming Languages not in the.net Family Contents
Mobile Labs Plugin for IBM Urban Code Deploy
Mobile Labs Plugin for IBM Urban Code Deploy Thank you for deciding to use the Mobile Labs plugin to IBM Urban Code Deploy. With the plugin, you will be able to automate the processes of installing or
Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION
539752 ch01.qxd 9/9/03 11:38 PM Page 5 SESSION 1 Introduction to Microsoft Access and Programming Session Checklist Understanding what programming is Using the Visual Basic language Programming for the
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
