The Vim Editor: Philosophy, Principles and Practice Lecture 0: Welcome & Conventions

Total Page:16

File Type:pdf, Size:1020Kb

The Vim Editor: Philosophy, Principles and Practice Lecture 0: Welcome & Conventions 98-277: The Vim Editor: Philosophy, Principles and Practice Lecture 0: Welcome & Conventions (Hence, not much of meat, but a lot to know) Announcements • There will be no class next Monday! • (Labour day!) • Go out and have fun! Course Website http://andrew.cmu.edu/~haoxuany/vim Props to Andrew Benson(adbenson) for creating the amazingly beautiful CSS!!! :) Poll the website for homeworks and announcements! • Course Logistics :( • A Bit of Foreshadowing... • Installing Vim • Keyboard Ergonomics • Course Logistics :( • A Bit of Foreshadowing... • Installing Vim • Keyboard Ergonomics whoami • Haoxuan "Aaron" Yue (Plz call me Aaron) • [email protected] • School of Computer Science, Class of 2018 • Started using Vim rougly 6+ years ago • Thought it was awful, was miserable (but we'll talk about it later...) • Use Vim exclusively for text editing now This is me! http://abstrusegoose.com/354 Before that... This is a StuCo course!!! Meaning... • You are REQUIRED to attend class! • More specifically, you are not allowed to miss more than 2 classes. (StuCo policy) • (If there are documented illnesses, emergency situations, university bussiness etc., email me or talk to me preferably BEFORE it happens) Meaning... • Def Missing Class: Not coming, Tardiness (miss more than 15 minutes of class). • To enforce that, you are REQUIRED to sign an attendence sheet (during class) • Please remember to do that!! It's hard to verify attendence if you don't. Grading • Aside from attendance... • 40% Homeworks • 5 homeworks in total (each 8%). • PRINT, finish, and hand it in the next class after it is assigned. • Unless in special circumstances, will not accept late homework. Homework • Roughly 3 problems each. • 1st problem is basically lecture material. • Recommend doing without referencing the lecture notes. • (*May* show up on exams *hint hint*). • Other problems extend the discussion in lecture. • Please do them! Very few resources out there cover these (will talk about that later). Grading • 30% Midterm • 30% Finals • Midterm will NOT be curved. Finals may be. • Midterm will not cover commands (generally), hence understand, don't memorize. • Final will cover nearly all commands in lecture! • Passing requires 60% (under consideration...) Grading • On a side note • It shouldn't be a tough course! • Please do all the homeworks! • Pay attention in lecture, since the material is very different from others... • Which brings us to... • Course Logistics :( • A Bit of Foreshadowing... • Installing Vim • Keyboard Ergonomics • Course Logistics :( • A Bit of Foreshadowing... Yay! :D • Installing Vim • Keyboard Ergonomics What is Vim? • Vim is a text editor. What is Vim? • Vim is a text editor. •This is actually true. • Moreover, Vim is a text editor specially designed for programmers. (Especially C-style programmers, but also works pretty well with other languages). A bit more about me... • 14 slides ago: "Started using Vim rougly 6+ years ago" • Emphasis on the word *started* • Then I quit... A bit more about me... • 15 slides ago: "Started using Vim rougly 6+ years ago" • Emphasis on the word *started* • Then I ragequit... A bit more about me... • 16 slides ago: "Started using Vim rougly 6+ years ago" • Emphasis on the word *started* • Then I ragequit... • Well not completely. Picked it up again sometime around 6 years ago. • Then ragequit again. Until finally one day decided to actually learn it. A bit more about me... • 17 slides ago: "Started using Vim rougly 6+ years ago" • Emphasis on the word *started* • Then I ragequit... • Well not completely. Picked it up again sometime around 6 years ago. • Then ragequit again. Until finally one day decided to actually learn? it. A bit more about me... • 3 weeks. Food + vimtutor. • At least 4 hrs of vimtutor drill over and over and over again. A bit more about me... • 3 weeks. Food + vimtutor. • At least 4 hrs of vimtutor drill over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over again. Moral of the Story? • Vim is hard! • Vim is not for mortals like me! • Screw that, I'll just use another editor instead.... Why would I spend so much time on it? (in your case, an entire course) Moral of the Story? • Vim is hard! • Vim is not for mortals like me! • Screw that, I'll just use another editor instead.... Why would I spend so much time on it? (in your case, an entire course) • Completely WRONG moral of the story Actual Moral of the Story • vimtutor is BAD BAD BAD!!! • Something you learn in retrospect... Something you hear very often... • "Vim is hard to learn for beginners" • "Vim is great since it has many commands, which makes you fast" Something you hear very often... • "Vim is hard to learn for beginners" • "Vim is great since it has many commands, which makes you fast" • "<insert random editor name> is better since it has <insert feature name>." Something you hear very often... • They are all either wrong, or unintentionally misleading... • They all miss the point! • Vim is also not hard to learn, it is just that most resources out there are complete garbage. To list a few... • Resources you should avoid: • vimtutor (Worst offender, probably should give it some kind of award) • Two books from O'Reilly • Also, almost everything... To list a few... • Resources you should avoid: • vimtutor (Worst offender, probably should give it some kind of award) • Two books from O'Reilly • Also, almost everything... To list a few... • Resources you should avoid: • vimtutor (Worst offender, probably should give it some kind of award) • Two books from O'Reilly • Also, almost everything... Actually Good Resources Actually Good Resources • However, Practical Vim requires some familiarity with Vim... • By that time, most people have already completed vimtutor :( • There are also roughly 3 screencasts from Destroy All Software, by Gary Bernhardt, though it's a bit pricy... Emphasis in this course • Systematic use of Vim Emphasis in this course • Systematic use of Vim • Command Clarity and Ergonomics Emphasis in this course • Systematic use of Vim • Command Clarity and Ergonomics • Use Cases – When to use certain commands Emphasis in this course • Systematic use of Vim • Command Clarity and Ergonomics • Use Cases – When to use certain commands – When NOT to use certain commands (antipatterns) Emphasis in this course • Systematic use of Vim • Command Clarity and Ergonomics • Use Cases – When to use certain commands – When NOT to use certain commands (antipatterns) • WHY? So why this course? • Explain HOW to think about text editing. (Philosophy) So why this course? • Explain HOW to think about text editing. (Philosophy) • Explain what RULES we follow when we manage integration of features, and why some commands are better than others. Also, why we DON'T use some commands. (Principles) So why this course? • Explains HOW to use Vim commands. (Practice). • And most importantly, throughout the course explains a fundamental question... WHY VIM? Word of Warning!! • This course does have prerequisites!!! • Requires working knowledge of using a unix(- based/-like) command line • basic shell commands (ls, mkdir, cd, ...) • some utilities (make, man, ...) • it's okay to be bad at shell scripting • These commands will NOT be reviewed in lecture!! • There is a course for that: http://www.cs.cmu.edu/~15131/ Word of Warning!! • This course is in no way "beginner- friendly", nor is it a crash course. • In fact, you should be very wary of crash courses that tries to explain Vim. • We won't even be able to actually use Vim until roughly the 6th lecture. Word of Warning!! • Some topics will be covered in much detail (navigation, repetition...) • Some of them will only be covered if there is time left at the end of the semester (plugins...) • This is a new course with brand new material, so the syllabus should only used as a rough reference. Word of Warning!! • Some topics will only be briefly mentioned, because these features are nearly obsolete (marks...) • Some topics will be intentionally avoided! Because they are either broken or its fundamental ideas are WRONG (vimscript, vim regular expressions, certain plugins) • Course Logistics :( • A Bit of Foreshadowing... • Installing Vim • Keyboard Ergonomics • Cool thing about Vim is that it is *mostly* designed to be portable. • *mostly* • However, it doesn't run on your toaster. • (maybe if you really try). • For the purposes of this course, we will be using a very specific version of Vim. Requirements • For this particular course, you need Vim 7.4 huge version with ruby support. • (Huh?) • First thing to know is that every subversion upgrade introduces quite a few important changes. • Vim 7.3 *may* work, but do not depend on it. • Vim comes in different flavors... • tiny • small • normal • big • huge • There is very little reason not to use the huge version... Check Version • vim --version • (good idea to pipe into less) • Within vim: • :version<CR> • <CR> stands for "Carriage Return". For our purposes, it's the Enter key on the keyboard. Ruby Support • The only reason for this requirement is that there is a very specific plugin that we will talk about called Command-T: • https://github.com/wincent/Command-T • Requires vim compiled with ruby support • vim --version | grep ruby • Make sure that there is a "+" sign next to "ruby". Ruby Support • Also requires a "compatible" ruby version installed in system. • Read the plugin README markdown on github, gives you all the details for that. • Also requires a C compiler, highly unlikely that you don't have one. OS woes • Some operating systems are very uncooperative... • In fact, one specific operating system comes to mind. • We'll try workarounds, for time being, here's a general guide.
Recommended publications
  • Oracle Database Licensing Information, 11G Release 2 (11.2) E10594-26
    Oracle® Database Licensing Information 11g Release 2 (11.2) E10594-26 July 2012 Oracle Database Licensing Information, 11g Release 2 (11.2) E10594-26 Copyright © 2004, 2012, Oracle and/or its affiliates. All rights reserved. Contributor: Manmeet Ahluwalia, Penny Avril, Charlie Berger, Michelle Bird, Carolyn Bruse, Rich Buchheim, Sandra Cheevers, Leo Cloutier, Bud Endress, Prabhaker Gongloor, Kevin Jernigan, Anil Khilani, Mughees Minhas, Trish McGonigle, Dennis MacNeil, Paul Narth, Anu Natarajan, Paul Needham, Martin Pena, Jill Robinson, Mark Townsend This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.
    [Show full text]
  • Cygwin User's Guide
    Cygwin User’s Guide Cygwin User’s Guide ii Copyright © Cygwin authors Permission is granted to make and distribute verbatim copies of this documentation provided the copyright notice and this per- mission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this documentation under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this documentation into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. Cygwin User’s Guide iii Contents 1 Cygwin Overview 1 1.1 What is it? . .1 1.2 Quick Start Guide for those more experienced with Windows . .1 1.3 Quick Start Guide for those more experienced with UNIX . .1 1.4 Are the Cygwin tools free software? . .2 1.5 A brief history of the Cygwin project . .2 1.6 Highlights of Cygwin Functionality . .3 1.6.1 Introduction . .3 1.6.2 Permissions and Security . .3 1.6.3 File Access . .3 1.6.4 Text Mode vs. Binary Mode . .4 1.6.5 ANSI C Library . .4 1.6.6 Process Creation . .5 1.6.6.1 Problems with process creation . .5 1.6.7 Signals . .6 1.6.8 Sockets . .6 1.6.9 Select . .7 1.7 What’s new and what changed in Cygwin . .7 1.7.1 What’s new and what changed in 3.2 .
    [Show full text]
  • FRESHMAN GUIDE to Successful College Planning
    FRESHMAN GUIDE to Successful College Planning Artwork by: Serena Walkin Ballou Senior High School Class of 2001 Graduate COPYRIGHT © 2003 DISTRICT OF COLUMBIA COLLEGE ACCESS PROGRAM. ALL RIGHTS RESERVED. PRINTED IN THE UNITED STATES OF AMERICA. FRESHMAN GUIDE TO SUCCESSFUL COLLEGE PLANNING TABLE OF CONTENTS Introduction 2 How to Contact 3 Part I Student Guide to Freshman Year 6 Section I Selecting Your High School Courses 7 Section II Attendance, Time Management, & Study Skills 10 Section III Understanding Your GPA 12 Section IV Standardized Tests 13 Section V Activities for College Bound Freshman 14 Section VI Types of Colleges 15 Section VII Activity Worksheet 16 Part II Parental Guide to Financial Planning 19 Parent Agreement 22 INTRODUCTION Welcome to DC-CAP Freshman Guide to College Planning. The purpose of this guide is to assist students in the District of Columbia Public and Public Charter High Schools who are starting their Freshman Year of high school. We hope that this handbook will be useful to you and your parents as you set out to begin the journey of college planning during your high school years. Again, we encourage students to visit their DC- CAP advisor and register with our program. Congratulations!! Welcome to your first year of high school. Follow this guide step-by-step and you will guarantee yourself SUCCESS!!!!!!! Please read this handbook with your parents and return the signed agreement form to the DC-CAP Advisor assigned to your school. What is DC-CAP? The District of Columbia College Access Program (DC-CAP) is a non-profit organization funded by Washington Area corporations and foundations dedicated to encouraging and enabling District of Columbia public and public charter high school students to enter and graduate from college.
    [Show full text]
  • Netcat − Network Connections Made Easy
    Netcat − network connections made easy A lot of the shell scripting I do involves piping the output of one command into another, such as: $ cat /var/log/messages | awk '{print $4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15}' | sed −e 's/\[[0−9]*\]:/:/' | sort | uniq | less which shows me the system log file after removing the timestamps and [12345] pids and removing duplicates (1000 neatly ordered unique lines is a lot easier to scan than 6000 mixed together). The above technique works well when all the processing can be done on one machine. What happens if I want to somehow send this data to another machine right in the pipe? For example, instead of viewing it with less on this machine, I want to somehow send the output to my laptop so I can view it there. Ideally, the command would look something like: $ cat /var/log/messages | awk '{print $4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15}' | sed −e 's/\[[0−9]*\]:/:/' | sort | uniq | laptop That exact syntax won't work because the shell thinks it needs to hand off the data to a program called laptop − which doesn't exist. There's a way to do it, though. Enter Netcat Netcat was written 5 years ago to perform exactly this kind of magic − allowing the user to make network connections between machines without any programming. Let's look at some examples of how it works. Let's say that I'm having trouble with a web server that's not returning the content I want for some reason.
    [Show full text]
  • PS TEXT EDIT Reference Manual Is Designed to Give You a Complete Is About Overview of TEDIT
    Information Management Technology Library PS TEXT EDIT™ Reference Manual Abstract This manual describes PS TEXT EDIT, a multi-screen block mode text editor. It provides a complete overview of the product and instructions for using each command. Part Number 058059 Tandem Computers Incorporated Document History Edition Part Number Product Version OS Version Date First Edition 82550 A00 TEDIT B20 GUARDIAN 90 B20 October 1985 (Preliminary) Second Edition 82550 B00 TEDIT B30 GUARDIAN 90 B30 April 1986 Update 1 82242 TEDIT C00 GUARDIAN 90 C00 November 1987 Third Edition 058059 TEDIT C00 GUARDIAN 90 C00 July 1991 Note The second edition of this manual was reformatted in July 1991; no changes were made to the manual’s content at that time. New editions incorporate any updates issued since the previous edition. Copyright All rights reserved. No part of this document may be reproduced in any form, including photocopying or translation to another language, without the prior written consent of Tandem Computers Incorporated. Copyright 1991 Tandem Computers Incorporated. Contents What This Book Is About xvii Who Should Use This Book xvii How to Use This Book xvii Where to Go for More Information xix What’s New in This Update xx Section 1 Introduction to TEDIT What Is PS TEXT EDIT? 1-1 TEDIT Features 1-1 TEDIT Commands 1-2 Using TEDIT Commands 1-3 Terminals and TEDIT 1-3 Starting TEDIT 1-4 Section 2 TEDIT Topics Overview 2-1 Understanding Syntax 2-2 Note About the Examples in This Book 2-3 BALANCED-EXPRESSION 2-5 CHARACTER 2-9 058059 Tandem Computers
    [Show full text]
  • Programmable AC/DC Electronic Load
    Programmable AC/DC Electronic Load Programming Guide for IT8600 Series Model: IT8615/IT8615L/IT8616/IT8617 /IT8624/IT8625/IT8626/IT8627/IT8628 Version: V2.3 Notices Warranty Safety Notices © ItechElectronic, Co., Ltd. 2019 No part of this manual may be The materials contained in this reproduced in any form or by any means document are provided .”as is”, and (including electronic storage and is subject to change, without prior retrieval or translation into a foreign notice, in future editions. Further, to A CAUTION sign denotes a language) without prior permission and the maximum extent permitted by hazard. It calls attention to an written consent from Itech Electronic, applicable laws, ITECH disclaims operating procedure or practice Co., Ltd. as governed by international all warrants, either express or copyright laws. implied, with regard to this manual that, if not correctly performed and any information contained or adhered to, could result in Manual Part Number herein, including but not limited to damage to the product or loss of IT8600-402266 the implied warranties of important data. Do not proceed merchantability and fitness for a beyond a CAUTION sign until Revision particular purpose. ITECH shall not the indicated conditions are fully be held liable for errors or for 2nd Edition: Feb. 20, 2019 understood and met. incidental or indirect damages in Itech Electronic, Co., Ltd. connection with the furnishing, use or application of this document or of Trademarks any information contained herein. A WARNING sign denotes a Pentium is U.S. registered trademarks Should ITECh and the user enter of Intel Corporation. into a separate written agreement hazard.
    [Show full text]
  • Freebsd and Netbsd on Small X86 Based Systems
    FreeBSD and NetBSD on Small x86 Based Systems Dr. Adrian Steinmann <[email protected]> Asia BSD Conference in Tokyo, Japan March 17th, 2011 1 Introduction Who am I? • Ph.D. in Mathematical Physics (long time ago) • Webgroup Consulting AG (now) • IT Consulting Open Source, Security, Perl • FreeBSD since version 1.0 (1993) • NetBSD since version 3.0 (2005) • Traveling, Sculpting, Go AsiaBSDCon Tutorial March 17, 2011 in Tokyo, Japan “Installing and Running FreeBSD and NetBSD on Small x86 Based Systems” Dr. Adrian Steinmann <[email protected]> 2 Focus on Installing and Running FreeBSD and NetBSD on Compact Flash Systems (1) Overview of suitable SW for small x86 based systems with compact flash (CF) (2) Live CD / USB dists to try out and bootstrap onto a CF (3) Overview of HW for small x86 systems (4) Installation strategies: what needs special attention when doing installations to CF (5) Building your own custom Install/Maintenance RAMdisk AsiaBSDCon Tutorial March 17, 2011 in Tokyo, Japan “Installing and Running FreeBSD and NetBSD on Small x86 Based Systems” Dr. Adrian Steinmann <[email protected]> 3 FreeBSD for Small HW Many choices! – Too many? • PicoBSD / TinyBSD • miniBSD & m0n0wall • pfSense • FreeBSD livefs, memstick • NanoBSD • STYX. Others: druidbsd, Beastiebox, Cauldron Project, ... AsiaBSDCon Tutorial March 17, 2011 in Tokyo, Japan “Installing and Running FreeBSD and NetBSD on Small x86 Based Systems” Dr. Adrian Steinmann <[email protected]> 4 PicoBSD & miniBSD • PicoBSD (1998): Initial import into src/release/picobsd/ by Andrzej Bialecki <[email protected]
    [Show full text]
  • Weighcare Totaltm
    TM TM WeighCare Total SELECT simply better service Comprehensive, all-inclusive service cover, backed by a groundbreaking uptime guarantee, WeighCare Total cover highlights for heavy-duty, integrated scales up to 3-tonne capacity. 97% guaranteed uptime Enjoy guaranteed uptime of at least 97% per weighing system per year or we’ll refund a proportion of your When do I need WeighCare Total? Which equipment is covered? annual fee. If a scale failure or fault would halt production and continuous All scale systems that require services to be performed by an All-inclusive, no hidden costs availability is an absolute priority, WeighCare Total guarantees at engineer on site. Service cover includes all parts (including load cells), labour least 97% operational uptime. Ensuring rapid, fully inclusive cover and tools. to maintain, diagnose and repair equipment, WeighCare Total keeps Additional service options Our optional extras let you further tailor your WeighCare Total cover: Named, assigned Avery Weigh-Tronix engineers your production, manufacturing or distribution operations moving. Consignment stock Talk directly to engineers who know your operation, 24/7 technical helpline equipment and site. Ensure maximum uptime for your asset What’s included? WeighCare Total Additional calibration with health checks highlighting any operating risks. Additional preventative maintenance No need for approval Service level 97% uptime guarantee Don’t lose time raising purchase orders. Any call out is Site-dedicated engineers automatically pre-approved, as are parts and labour. Calibration visits included 1 Online asset dashboard Track asset uptime while easily accessing documents, Preventative maintenance visits included 1 including service visit reports, verification and calibration Appointments included certificates.
    [Show full text]
  • April 2006 Volume 31 Number 2
    APRIL 2006 VOLUME 31 NUMBER 2 THE USENIX MAGAZINE OPINION Musings RIK FARROW OpenSolaris:The Model TOM HAYNES PROGRAMMING Code Testing and Its Role in Teaching BRIAN KERNIGHAN Modular System Programming in MINIX 3 JORRIT N. HERDER, HERBERT BOS, BEN GRAS, PHILIP HOMBURG, AND ANDREW S. TANENBAUM Some Types of Memory Are More Equal Than Others DIOMEDIS SPINELLIS Simple Software Flow Analysis Using GNU Cflow CHAOS GOLUBITSKY Why You Should Use Ruby LU KE KANIES SYSADMIN Unwanted HTTP:Who Has the Time? DAVI D MALONE Auditing Superuser Usage RANDOLPH LANGLEY C OLUMNS Practical Perl Tools:Programming, Ho Hum DAVID BLANK-EDELMAN VoIP Watch HEISON CHAK /dev/random ROBERT G. FERRELL STANDARDS USENIX Standards Activities NICHOLAS M. STOUGHTON B O OK REVIEWS Book Reviews ELIZABETH ZWICKY, WITH SAM STOVER AND RI K FARROW USENIX NOTES Letter to the Editor TED DOLOTTA Fund to Establish the John Lions Chair C ONFERENCES LISA ’05:The 19th Large Installation System Administration Conference WORLDS ’05: Second Workshop on Real, Large Distributed Systems FAST ’05: 4th USENIX Conference on File and Storage Technologies The Advanced Computing Systems Association Upcoming Events 3RD SYMPOSIUM ON NETWORKED SYSTEMS 2ND STEPS TO REDUCING UNWANTED TRAFFIC ON DESIGN AND IMPLEMENTATION (NSDI ’06) THE INTERNET WORKSHOP (SRUTI ’06) Sponsored by USENIX, in cooperation with ACM SIGCOMM JULY 6–7, 2006, SAN JOSE, CA, USA and ACM SIGOPS http://www.usenix.org/sruti06 MAY 8–10, 2006, SAN JOSE, CA, USA Paper submissions due: April 20, 2006 http://www.usenix.org/nsdi06 2006
    [Show full text]
  • The Linux Command Line
    The Linux Command Line Second Internet Edition William E. Shotts, Jr. A LinuxCommand.org Book Copyright ©2008-2013, William E. Shotts, Jr. This work is licensed under the Creative Commons Attribution-Noncommercial-No De- rivative Works 3.0 United States License. To view a copy of this license, visit the link above or send a letter to Creative Commons, 171 Second Street, Suite 300, San Fran- cisco, California, 94105, USA. Linux® is the registered trademark of Linus Torvalds. All other trademarks belong to their respective owners. This book is part of the LinuxCommand.org project, a site for Linux education and advo- cacy devoted to helping users of legacy operating systems migrate into the future. You may contact the LinuxCommand.org project at http://linuxcommand.org. This book is also available in printed form, published by No Starch Press and may be purchased wherever fine books are sold. No Starch Press also offers this book in elec- tronic formats for most popular e-readers: http://nostarch.com/tlcl.htm Release History Version Date Description 13.07 July 6, 2013 Second Internet Edition. 09.12 December 14, 2009 First Internet Edition. 09.11 November 19, 2009 Fourth draft with almost all reviewer feedback incorporated and edited through chapter 37. 09.10 October 3, 2009 Third draft with revised table formatting, partial application of reviewers feedback and edited through chapter 18. 09.08 August 12, 2009 Second draft incorporating the first editing pass. 09.07 July 18, 2009 Completed first draft. Table of Contents Introduction....................................................................................................xvi
    [Show full text]
  • Command Line Interface (Shell)
    Command Line Interface (Shell) 1 Organization of a computer system users applications graphical user shell interface (GUI) operating system hardware (or software acting like hardware: “virtual machine”) 2 Organization of a computer system Easier to use; users applications Not so easy to program with, interactive actions automate (click, drag, tap, …) graphical user shell interface (GUI) system calls operating system hardware (or software acting like hardware: “virtual machine”) 3 Organization of a computer system Easier to program users applications with and automate; Not so convenient to use (maybe) typed commands graphical user shell interface (GUI) system calls operating system hardware (or software acting like hardware: “virtual machine”) 4 Organization of a computer system users applications this class graphical user shell interface (GUI) operating system hardware (or software acting like hardware: “virtual machine”) 5 What is a Command Line Interface? • Interface: Means it is a way to interact with the Operating System. 6 What is a Command Line Interface? • Interface: Means it is a way to interact with the Operating System. • Command Line: Means you interact with it through typing commands at the keyboard. 7 What is a Command Line Interface? • Interface: Means it is a way to interact with the Operating System. • Command Line: Means you interact with it through typing commands at the keyboard. So a Command Line Interface (or a shell) is a program that lets you interact with the Operating System via the keyboard. 8 Why Use a Command Line Interface? A. In the old days, there was no choice 9 Why Use a Command Line Interface? A.
    [Show full text]
  • Action Language BC: Preliminary Report
    Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence Action Language BC: Preliminary Report Joohyung Lee1, Vladimir Lifschitz2 and Fangkai Yang2 1School of Computing, Informatics and Decision Systems Engineering, Arizona State University [email protected] 2 Department of Computer Science, Univeristy of Texas at Austin fvl,[email protected] Abstract solves the frame problem by incorporating the commonsense law of inertia in its semantics, which makes it difficult to talk The action description languages B and C have sig- about fluents whose behavior is described by defaults other nificant common core. Nevertheless, some expres- than inertia. The position of a moving pendulum, for in- sive possibilities of B are difficult or impossible to stance, is a non-inertial fluent: it changes by itself, and an simulate in C, and the other way around. The main action is required to prevent the pendulum from moving. The advantage of B is that it allows the user to give amount of liquid in a leaking container changes by itself, and Prolog-style recursive definitions, which is impor- an action is required to prevent it from decreasing. A spring- tant in applications. On the other hand, B solves loaded door closes by itself, and an action is required to keep the frame problem by incorporating the common- it open. Work on the action language C and its extension C+ sense law of inertia in its semantics, which makes was partly motivated by examples of this kind. In these lan- it difficult to talk about fluents whose behavior is guages, the inertia assumption is expressed by axioms that the described by defaults other than inertia.
    [Show full text]