Cmdr Andreas Kupries ActiveState Software Inc. © 2013

Slides:



Advertisements
Similar presentations
The creation of "Yaolan.com" A Site for Pre-natal and Parenting Education in Chinese by James Caldwell DAE Interactive Marketing a Web Connection Company.
Advertisements

DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
USER CONFERENCE 2013 © 2009 IFS CONFIGURABLES May 22 th 2013 MARTIN LINDSTRAND, BUSINESS CONSULTANT Hej och välkomna.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
© 2007 Cisco Systems, Inc. All rights reserved.ICND1 v1.0—2-1 Ethernet LANs Operating Cisco IOS Software.
It’s always better live. MSDN Events Security Best Practices Part 2 of 2 Reducing Vulnerabilities using Visual Studio 2008.
Using Visual Basic 6.0 to Create Web-Based Database Applications
Exploring Office Grauer and Barber 1 Creating More Powerful Applications: Introduction to VBA(Wk9)
1 Computing for Todays Lecture 22 Yumei Huo Fall 2006.
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 2 Hidden Gems of APEX David Gale Software Engineer Oracle Application Express November,
EGEMS A Dedicated Web Based System for Ground Water Data Processing Analysis and Storage.
2010 Practice Management Annual Conference PCLaw® Office Efficiency Tools – Calendaring, Phone Call & Document Management Presented by: Deborah Schaefer.
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
OLE and ODBC: Taming the Technologies The Third Annual Perl Conference, 1999 Sunday, August 22, 1999Roth Consulting ODBC.
CIS 375—Web App Dev II ASP.NET 2 Introducing Web Forms.
Programming with Microsoft Visual Basic 2012 Chapter 12: Web Applications.
1 HTML References: A HTML Tutorial: /HTMLPrimer.html
Using Visual Basic 6.0 to Create Web-Based Database Applications
Java Android-8 Imran Shafi. Lecture Contents  Debugging Android Projects  Java/XML Errors  Debugger  Logcat Utility  Android Debug Bridge (adb) 
Copyright © 2008 Pearson Prentice Hall. All rights reserved. 1 Microsoft Office Excel Copyright © 2008 Pearson Prentice Hall. All rights reserved
Appendix A Starting Out with Windows PowerShell™ 2.0.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
GUS Plugin System Michael Saffitz Genomics Unified Schema Workshop July 6-8th, Philadelphia, Pennsylvania.
Stored procedures1 Stored procedures and functions Procedures and functions stored in the database.
Interfaces to External EDA Tools Debussy Denali SWIFT™ Course 12.
CERN - IT Department CH-1211 Genève 23 Switzerland t DB Development Tools Benthic SQL Developer Application Express WLCG Service Reliability.
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
PI Data Archive Server COM Points Richard Beeson.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Adding Parameters to Commands ADO.NET - Lesson 06  Training time: 15 minutes.
Chính phủ điện tử TS. Phạm Văn Tính Khoa CNTT, ĐH Nông Lâm TP.HCM
9-Nov-97Tri-Ada '971 TASH An Alternative to the Windows API TRI-Ada ‘97 Terry J. Westley
Oracle Data Integrator User Functions, Variables and Advanced Mappings
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Chapter 27 Getting “Web-ified” (Web Applications) Clearly Visual Basic: Programming with Visual Basic nd Edition.
SQL Query Analyzer. Graphical tool that allows you to:  Create queries and other SQL scripts and execute them against SQL Server databases. (Query window)
How to Recover Deleted Photos from Android Cell Phone? Android is keeping on improving their products and make sure to provide the best software service.
Zac Fenigshtien  Introduction: 3 Tier Architecture  SQL Injection ◦ Parameter Sandboxing ◦ Blacklisting, Whitelisting.
XP Creating Web Pages with Microsoft Office
 INDEX  Overview.  Introduction.  System Requirement.  Features Of SQL.  Development Process.  System Design (SDLC).  Implementation.  Future.
Introducing the Microsoft® .NET Framework
ONAP CLI (Command-Line Interface ) Architecture
Open-O CLI (Command-Line Interface ) Architecture
UNICOS Application Builder Architecture
TANGO Harmonization Meeting (Edinburgh)
Variables in Java A variable holds either
C Runtime In Tcl Andreas Kupries © th Annual Tcl Conference
C-Shell with Functions
What are they? The Package Repository Client is a set of Tcl scripts that are capable of locating, downloading, and installing packages for both Tcl and.
Scripting Languages Info derived largely from Programming Language Pragmatics, by Michael Scott.
JDBC Database Management Database connectivity
Data Virtualization Tutorial: Introduction to SQL Script
Section 13 - Integrating with Third Party Tools
CIMConnect Tools to enable equipment suppliers to efficiently develop powerful SECS/GEM interfaces.
Activities and Intents
Software Testing With Testopia
C Runtime In Tcl v3 Andreas Kupries ActiveState Software Inc. © 2011
Accessing Spatial Information from MaineDOT
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Seminar 3 UML Class Diagram.
PHP.
Mapping Tool Joanna Ma University of British Columbia Department of Electrical and Computer Engineering Radio Science Lab II – OBJECTIVES Short-term: Create.
BTEC Level 3 Subsidiary Diploma
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Presented by: Jeff Moore – Artsyl Technologies, Inc.
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
By Rajanikanth B Eclipse IDE Overview By Rajanikanth B
Presentation transcript:

Cmdr Andreas Kupries ActiveState Software Inc. © 2013 20th Annual Tcl Conference Bourbon Orleans Hotel, New Orleans, LA Sep 23 – Sep 27 2013

Cmdr Background Help Shells Architecture Future Location & References

Cmdr - Background ActiveState Project Needed better command line processing for the “stackato” cli application. Tcl's getopt, Tcllib's cmdline Geared towards procedure argument handling Tcllib's TEPAM Existence was forgotten, might have been usable Inspired by ruby gem “mothership”

Cmdr - Help Generation is fully automatic from command declaration. 3 standard formats (full, short, list) 2 semi-standard formats (“require” to enable) Json ® Connectivity to external doc systems SQL ® Exploration by query

Cmdr - Shells Based on “linenoise” Steve Bennet's fork of Antirez's original Main command line (Actually all officers) Command completion Parameter value completion ® Validation type Mini shell for individual commands Enable either globally or in command declaration. Parameter name (command) completion Interactive entry of single parameters. Must be enabled in the parameter declaration.

Cmdr – DSL – Outline package require Tcl 8.5 package require cmdr package require foo-backend cmdr create ::foo foo { <specification> } foo do {*}$argv

Cmdr – DSL – Officer <specification> officer alias { description { A collection of commands to manage user-specific shortcuts for command entry } <specification>

Cmdr – DSL – Private <specification> private add { description { Create a shortcut for a command (prefix). } <specification> } ::foo::backend::alias::add

Cmdr – DSL – Parameter I input name { The name of the new shortcut. } { validate ::foo::backend::vt::notacommand } # single value # mandatory # empty string # no notifications

Cmdr – DSL – Parameter II option debug { Activate client internal tracing. } { undocumented list validate [call@vtype debug] when-complete [lambda {p tags} { foreach t $tags { debug on $t } }] }

Cmdr – DSL – Parameter III common .v2 { state checkv2 { Invisible state argument checking that the chosen Target supports the CF v2 API. Use in commands which are v2 only. Note: Requires proper client arguments coming before it. } { immediate generate [call@mgr client isv2cmd] }

Cmdr – DSL – Large Example See https://github.com/ActiveState/stackato-cli/blob/v2/lib/cmd/cmdr.tcl Notifications Actual notifications for deeper layers Cross-parameter checking Command/parameter availability checks Custom validation types Dynamic extension (aliases) …

Cmdr - Architecture

Cmdr - Architecture cmdr cmdr::officer ® is-a (cmdr::actor) cmdr::private ® is-a (cmdr::actor) cmdr::config cmdr::parameter cmdr::help cmdr::help::json cmdr::help::sql cmdr::validate cmdr::validate::common cmdr::util

Cmdr - Future Is the immediate / deferred distinction needed? Global options Hardwired boolean/presence Can it be generalized? Additional and/or generalized validation types For example: Integer ranges. Type-specific interactors More help formats? (doctools) Overlay of a logical structure on help.

Cmdr – Location Where ? The Conference eProceedings (º USB-Stick) http://core.tcl.tk/akupries/cmdr http://chiselapp.com/user/andreas_kupries/repository/cmdr

Cmdr – References Supporting packages & tools The Conference eProceedings (º USB-Stick) http://core.tcl.tk/akupries/cmdr http://core.tcl.tk/akupries/linenoise-utilities https://github.com/andreas-kupries/tcl-linenoise https://github.com/andreas-kupries/linenoise https://github.com/msteveb/linenoise (https://github.com/antirez/linenoise) https://core.tcl.tk/akupries/kettle