Autonomy Paradigm Warning: This document is a part of my “Responsible Programming” theme. All docs related to that theme just gather some of my ideas.

Slides:



Advertisements
Similar presentations
Requirements for a UI Test Framework Stanislaw Wozniak Bernie Miles.
Advertisements

Websydian products.
Version Control System (Sub)Version Control (SVN).
The Windows Registry Adapted from
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Maintaining and Updating Windows Server 2008
My Application. What kind of Application? Desktop vs Web Easy to develop Less code writing Difficult to look after if several users(computers) uses. Installation.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Danielle Baldwin, ITS Web Services CMS Administrator Application Overview and Joomla 1.5 RC 1 Highlights.
Web Based Applications
1 Lecture 19 Configuration Management Software Engineering.
10 Reasons to Choose the Yii Framework. The development of Yii framework began on January 1, 2008.Yii framework It is an open source application that.
Linux Security. Authors:- Advanced Linux Programming by Mark Mitchell, Jeffrey Oldham, and Alex Samuel, of CodeSourcery LLC published by New Riders Publishing.
What is a port The Ports Collection is essentially a set of Makefiles, patches, and description files placed in /usr/ports. The port includes instructions.
CMPF124 Personal Productivity with Information Technology Chapter 2 – Part 3 Introduction To Windows Operating Systems Windows Accessories CMPF 112 : COMPUTING.
IBM Express Runtime Quick Start Workshop © 2007 IBM Corporation Deploying a Solution.
Joe Chrzanowski.  Changed previous method of page creation to make a lot more sense  Required a rewrite of most of the core libs  Development process.
2-December Offline Report Matthias Schröder Topics: Monte Carlo Production New Linux Version Tape Handling Desktop Computers.
Your current Moodle 1.9 Minimum Requirements Ability to do a TEST RUN! Upgrading Moodle to Version 2 By Ramzan Jabbar Doncaster College for the Deaf By.
Maintaining and Updating Windows Server 2008 Lesson 8.
Downloading and Installing GRASP-AF Workshop Ian Robson Information Analyst, North of England Cardiovascular Network.
Some More Points on Why WordPress CMS is Preferred & About Free WordPress Themes.
10 QuickBooks issues and how to resolve them. Updating the data file fails This can be very tricky. When you are updating QuickBooks from one version.
What type of project? I tried three type of project and the only one I managed to obtain the results I wanted was this one. It is more flexible and much.
Sitecore upgrades The Past, The Present, The Future.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
Which development environment/ language?
Core ELN Training: Office Web Apps (OWA)
Introducing, Installing, and Upgrading Windows 7
Nithyamoorthy S Core Mind Technologies
WWW – Why Work with Widgets
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.
Version Control with Subversion
Installation and Configuration
Discussion 11 Final Project / Git.
Full Page Watermarking
Software testing
C++ coding standard suggestion… Separate reasoning from action, in every block. Hi, this talk is to suggest a rule (or guideline) to simplify C++ code.
Single Sample Registration
IM-pack: Software Installation Using Disk Images
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
CVS revisions UML diagram
Lecture 13 RPM and its advantages.
Create login screen Decide how you want you log in screen to work. I have 3 examples of different difficulty/approach, but you should have your own ideas.
Quicken Tech Support Phone Number One of the top software there is, the quicken software can pose a number of trouble and if you are new.
5 SYSTEM SOFTWARE CHAPTER
FAST Administration Training
Tally training in Chandigarh. Lets us look at the disadvantages of Tally accounting software Not User-Friendly: Tally fails to be an user friendly software.
HOW TO INSTALL AOL DESKTOP GOLD
Resolving QuickBooks Error when downloading payroll or QuickBooks Desktop Update One of the common QuickBooks Error is which users often get.
QuickBooks Pro Errors And Their Solutions QuickBooks Pro is an excellent accounting software for those who use Windows computers to manage and run their.
Intuit has launched QuickBooks File Doctor tool (QBFD) in QuickBooks File Doctor is a tool that has been designed to recover the damaged company.
Introduction to Configuration Management
Microsoft Word Reviewing Documents.
X in [Integration, Delivery, Deployment]
Digital filing & note-taking
Software Development Initiation Planning Design Analysis Development
LearnZillion Notes: --This is your hook. Start with a question to draw the student in. We want that student saying, “huh, how do you do X?” Try to be specific.
Lecture 1: Multi-tier Architecture Overview
NAV In The Cloud: Exploring Options for a Cloud-based Deployment
Purge-it! USP's, pre-sales process & helping the customer to decide
5 SYSTEM SOFTWARE CHAPTER
JENKINS TIPS Ideas for making your life with Jenkins easier
Concurrent Versions System
NAVIGATING THE MINEFIELD
Introduction to the Desktop Version of CIMSpy/CIMdesk (V 2.3)
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Convergence IT Services Pvt. Ltd
Presentation transcript:

Autonomy Paradigm Warning: This document is a part of my “Responsible Programming” theme. All docs related to that theme just gather some of my ideas. It is just ideas, I don't want to impose anything to anybody. Author: Lionel Thiry

Autonomy vs. Independence Autonomy and independence are different things Independence is to be self-sufficient Independence of external tools, libs, servers Independence of a kernel, and its drivers Absolute independence is very very rare Autonomy is the ability to take care of oneself We know one is mature when autonomous We are more at ease when working with mature people Probably same fact when working with their applications

Autonomy of the application The application should have the ability: To check its own integrity Do I have all my files? Are they all in the right place? Do they have the right size or checksum? Why this? More easy to check the integrity of an installation Then more easy to fix problems of installation

Autonomy of an application The application should have the ability: To configure itself With no configuration file to manually edit oneself Exception: programmatic development tools With no forced automation With a good interface for it Why this? Application developers know their own applications at best Then can be user friendly while user can keep control Read my doc “AutoVSManual” for more hints

Autonomy of an application The application should have the ability: To check its environment itself Do I have access to the tools I need? Are the interpreters I need present on the system? Do I have access to the libs I need? Are all the other resources I need where I expect them to be? Why this? Better to check dependencies oneself: smoother, smarter If the system changes, it helps to check if it still works It is easier to fix problems once you have a diagnostic

Autonomy of an application Separation of concerns: The main and the maintenance parts of the application Integrity, configuration or environment may be wrong It is then normal the main part don't run Or don't run smoothly But the maintenance part should still be able to run Ideally: whatever the problem is Practically: the requirements needed to run should be kept minimal

Autonomy of an application Installing and deinstalling Choose the way of control where your application keeps the control of itself best where the user keeps control best When meeting conflict, prefer the user It is the “human oriented” way Choose the way of ecology Do not pollute the system when installing Never leave waste when deinstalling

Autonomy of an application Another separation of concerns: Best is to have different kinds of installations System: core module, drivers, essential libs, etc Normal: when files are copied in some directories, plus some other tiny configurations User (done after normal installation) For adding icons, menu entries, etc, on the desktop Creating directories and configuration files in home directory And extra directories and caches elsewhere on the system Plus corresponding uninstallations

Autonomy of an application The application should have the ability: To be able to update itself As most quality programs already does Update availability should be checked only on demand Update informations can easily be retrieved On multi-users systems, an admin password will be necessary Why this? Always get the latest (quality) version Never do blind update that can be dangerous It is my “keep control” motto

Autonomy of an application If your application is extensible: Don't let another application manage it for your Keep control You hardly check integrity without that Deploy your own dedicated package system Keep it simple If you can't, there may be a design flaw in your system Exception: delegation

Autonomy of an application An application should always be well documented Be pedagogic It should be easy to read Abuse of schematics when possible Don't forget to give edifiant examples And so on: be pedagogic!

Autonomy in installation Provide an installation program With a usable and pleasant interface Don't forget about pedagogy Users are not idiot Say what you are doing Users are not especially skilled Explain the reasons why you are doing it If you do as this, you'll teach them But never force them to listen the lesson

Dependent autonomous application Autonomous applications still needs help They still need the help of kernel, tools, libs and servers They still have to integrate in a broader system That system may provide a lot of useful services As an adaptive UI lib for configuration programs As some libs for easier updates And even a repository to ensure the availability and security of those updates As some tools for faster environment checks As delegation services

Program as a responsible programmer: Make autonomous applications! Autonomy Conclusion Program as a responsible programmer: Make autonomous applications!