Friday, May 29, 2020

User modes in VIM - Free Essay Example

Chapter 1: Introduction Background and Motivation With the world shrinking to become one global village, with the leading MNCs of the world exalting the need for Virtual Teams and with heavy emphasis on dividing a problem into sub-problems, each to be handled in parallel, Real-time Collaboration has become simply inevitable. As such, there is a surge in demand for solutions which can help in real-time collaboration rather than the traditional method of granting access to only one user at a time for doing his work and then passing the floor to the next user. It does not come as a surprise that Google is already creating the Waves in the field of Real-time Collaboration.. In the past, the emphasis was on Non-real time collaborative systems like Microsoft Sharepoint, SunForum etc. Although these applications allowed multi users to work on a single document concurrently but being non-real time, only one user could hold the lock to edit the document at a time and the other users were held waiting. This defies the actual concept of collaboration which has to be mutual i.e. interaction between all parties involved. Many researchers from across the globe have been working to address this issue. For instance, CoWord and CoPowerPoint are the recent innovations which serve as a solution to the problem raised above. The collaboration technique used here does not modify the original application, but rather exploits the Microsoft APIs to build collaboration on top of Microsoft Word and PowerPoint. A similar approach would be used by the author to extend functionalities to CoVIM a multi-user collaborative version of single user text editor called VIM. Project Objectives The main purpose of this project is to fully convert a single-user text editor called VIM into a multi-user collaborative application called CoVIM. Being an on-going project carried forward from previous FYP student, the focus of the authors project is to incorporate various new features in CoVIM application. The scope of the project is as follows: Understanding of various user modes in VIM Familiarisation with VIM Script to use its API (Application Programming Interface) for implementation of new functionalities in CoVIM Studying, adapting and extending the technical approaches used to design Insert and Normal Mode to design Replace Mode for CoVIM Stress-testing the system from the users point of view Limitations CoVim is an on-going project aimed to overcome its limitations with continuous research and future developments. At present, the complexity of Vi script and limitation of time has given rise to following limitations: Lack of incorporation of all the fundamental 7 Modes of Vim into CoVIM Lack of concept of privileged users Inability to exactly replicate all user actions (e.g. Ctrl+Backspace) Inability to track mouse events Resources In terms of the Resources utilization, the Project is not very expensive. Both the hardware and the software required for the completion of Project are easily available. The software is charity-ware and easily downloadable. Hardware 2 or more personal Computers for Testing LAN infrastructure Software gVIM 7.2 for understanding the working of VIM software, editing of Vim Script and user testing. Report Organization The Report has been divided into several chapters: Chapter 1 is the prelude to the report expressing the authors motivation, projects overview, scope, resources and limitations. Chapter 2 accredits the previous research work already done in the field of the project Chapter 3 gives the reader a basic background of functions and features of VIM. Chapter 4 introduces the collaborative technique used to develop CoVIM and the system architecture for the same Chapter 5 elaborates the mechanisms to incorporate Replace Mode in CoVIM Chapter 6 illustrates various Test Cases and the systems response to the same Chapter 7 concludes the report by listing future recommendations for further improvement of CoVIM. Chapter 2: Literature Review For long, the world has realized the need for real-time collaborating techniques to turn single user applications into multi user applications. This chapter would accredit the prior work that has been done in this area and the highlight the concepts that would be applied in the implementation of CoVim. Prior Work Sun et al (2006) recognises the previous work that has been done in this field and has classified them on the basis of their approach to create multi-user applications out of single-user applications. According to this classification, following approaches exist: Generic Application Sharing with Centralized Architecture The generic-application sharing approach has been modelled after a chalkboard used during meetings. Following are the three fundamentals of this approach: Strict WYSIWIS (what you see is what I see): All the users of the shared application see the same thing at a time Sequential interaction paradigm: Only one user is the current holder of the floor i.e. only one user can interact with the application at a time. Centralized architecture: Only one instance of shared application is running in the system However, these basic fundamentals are a hindrance to the collaborative work that requires free and concurrent interactions. Moreover, a centralized architecture also leads to poor responsiveness and inefficient network usage. Generic Application Sharing with Replicated Architecture This approach attempts to replace the centralized architecture with a Replicated architecture wherein there are multiple instances of the shared application in the system. However, Technical challenges associated with replication like consistency maintenance of the state and view of the shared application, management of external resources (e.g., files, clocks, and network connections) and support for spontaneous interactions (e.g., accommodating late-comers) remain an open challenge to solve under the constraints of generic application sharing environments. Component Replacement Approach Flexible JAMM (Java Applets Made Multiuser) spearheaded this approach. The implementation is based on an object-oriented replicated architecture where certain single-user interface objects are dynamically replaced by multi-user extensions to allow for simultaneous editing. This approach brought about a paradigm shift in seeking generic solutions at the operating system level to exploring solutions at the application interface library level. Although this approach allows for concurrent work, relaxed WYSIWIS, flexible control, however it requires the application platform to have capabilities like process migration, runtime object replacement, and dynamic binding, which are not provided in many systems. Moreover, the coordination policies are embedded in the substituted collaboration-aware runtime environment of the single-user application, which according to Furuta and Stotts and Li etc is a major source of inflexibility. Transparent Adaptation Approach This is an innovative approach to Leveraging single-user applications for supporting multi-user collaboration. Sun et al. (2006) explains that this approach has the potential to significantly increase the availability and improve the usability of collaborative applications. The underlying fundamental of TA approach is to convert existing and new single-user applications into collaborative ones, without changing the source code of the original application. The cornerstone of the TA approach is the operational transformation (OT) technique and the method of adapting the single-user application programming interface to the data and operation models of OT. The aim is to not only retain the functionalities and look-and-feel of the single-user counterparts of the shared application, but also provide advanced multi-user collaboration capabilities for supporting multiple interaction paradigms, ranging from concurrent and free interaction to sequential and synchronized interaction, and for su pporting detailed workspace awareness, including multi-user telepointers and radar views. The TA approach and generic collaboration engine software component developed from this work are potentially applicable and reusable in adapting a wide range of single-user applications. Using this technique, CoWord, CoMaya, CoPowerpoint have already been developed and this project report would extend the TA approach to develop CoVim. The fundamentals underlying this approach are as follows: Transparent: TA uses the single-user application API and its execution environment to intercept and replay users interaction so that it does not need to access or change the application source code, thus being transparent to the application. Adaptation: Application API must be adaptable to data and operational models of OT technique Replicated architecture: Similar to component-replacement approach, the same instance of document is replicated at different collaborating sites so as to provide each user their own view of the document. This also allows local operation to take effect instantaneously at local site before propagating to other collaborating sites. The consistency maintenance problem that comes with the use of replicated architecture would be handled by the OT technique as described in the following section As a result of the above mentioned design considerations, Sun et al (2006) describes that collaborative applications based on the TA approach are able to achieve fast local response, concurrent work, relaxed WYSIWIS viewsharing and detailed workspace awareness the up-to-the-moment understanding of other users interactions with a shared workspace in order to coordinate users activities. Operational Transformation (OT) Operational transformation(OT) is a technology for supporting a range of collaboration functionalities in advancedgroupwaresystems. OT was originally invented for consistency maintenance andconcurrency controlin collaborative editing of plain text documents. Two decades of research has extended its capabilities and expanded its applications to include group undo, locking, conflict resolution, operation notification and compression, group-awareness, HTML/XML and tree-structured document editing, collaborative office productivity tools, application-sharing, and collaborative computer-aided media design tools. Recently, OT has been adopted as a core technique behind the collaboration features inGoogle Wave, which is taking OT to a new range of web-based applications. Collaborative systems using OT typically adopt a replicated architecture for the storage of shared documents to ensure good responsiveness in high latency environments, such as the Internet. The shared documents are replicated at the local storage of each collaborating site, so editing operations can be performed at local sites immediately and then propagated to remote sites. Remote editing operations arriving at a local site are typically transformed and then executed. The transformation ensures that application-dependent consistency criteria are achieved across all sites. The lock-free, non-blocking property of OT makes the local response time not sensitive to networking latencies. As a result, OT is particularly suitable for implementing collaboration features such as group editing in the Web/Internet context. The basic idea of OT is to transform (or adjust) the parameters of an editing operation according to the effects of previously executed concurrent operations so that the transformed operation can achieve the correct effect and maintain document consistency. It can be illustrated by the following example: Given a replicated text document containing string abc at two collaborating sites. Site 1 generates an independent operation O1 = Insert[0, x], which is to insert character x at position 0. Site 2 concurrently generates another independent operation O2 = Delete[2, c], which is to delete character c at position 2. (Assume index to start from 0) Suppose at Site 1, operations are executed in the order of O1 and O2, thus after execution of O1, the document would contain the string xabc. Suppose Site 1 executes O2 directly without any manipulation to the operation, it would incorrectly delete the text at position 2, which is character b instead of c, thus resulting in the string xac instead of xab. However, with OT, Site 1 would transform O2 against O1, which result in O2 being transformed into Delete[3, c], where the position parameter is incremented by 1 to take into consideration the impact of previous operation of inserting 1 character into the document. Thus, through proper transformation of an operation, document at Site 1 would correctly contain xab which is the intended end result. There exist two underlying models in each OT system: Data model that defines the way data objects in a document are addressed by operations. For e.g., the most fundamental data model is single linear address space. Operation model that defines the set of operations that can be directly transformed by OT functions. The most fundamental operation model consists of two primitive operations (PO): character-wise insert and delete. Chapter 3: Introduction to VIM VIM: What is VIM? VIM is a text-editor which does not only have all commands from the Unix program called Vi, but many new powerful commands as well (Appendix). So much so that its name was changed from being Vi IMitation initially to Vi IMproved. (Duperval, 1998) Since VIM is an editor and not a word-processor, the focus was always on entering the text effectively and not typesetting it. As such today, VIM is one of the most powerful text-editors around and one of the favourites of many programmers and users of Unix-like OSs. A brief history: Creator: Bram Moolenaar Initial release: 1991 Created for: Editing program source code Written in: C and Vim Script Stable Release: 7.2 (2008) The one used in this Project VIM: Where to use VIM? VIM is a portable cross-platform editor. It runs on most UNIX flavors as well as Widows, MacOS, DOS, VMS etc. Many several fronts to VIM exist like console, Motif, KDE, Windows GUI, Gtk+ etc. VIM: When to use VIM? All commands can be given to VIM with the keyboard. This has the advantage that one can keep his fingers on the keyboard and his eyes on the screen. For those who want it, there is mouse support and a GUI version with scrollbars and menus. Although Vim supports UTF-8 and has partial support for BIDI, it is not recommended for Hebrew editing. VIM: Why use VIM? There are a lot of fans of the 20-year-old vim editor. And no, they are not dinosaurs who dont want to catch up with the times the community of vim users just keeps growing. There are definite reasons why the vi/vim editing model is just superior to any other out there. And one doesnt need to be a UNIX whiz to use it, either: vim is available for free for almost any platform out there; and there are plug-ins to get the functionality inside all major IDEs. Lets see what makes it so popular: Extensibility: Vim supports its own scripting language, numerous plug-ins and several common scripting languages (Perl, Python, Tcl, Ruby). Highlighting: Text highlighting was designed to help programmers through visual aids which enable users to recognize the structure of the file and to spot errors easily. It is also used in text searching, where search results are highlighted. Repeat Commands: The . command repeats the last change made in normal mode. For example, if the user presses dw to delete a word, he can then press . to delete another word. The @: command repeats the last command-line change (a command invoked with :, for example :s/old/new/). Vim also supports macros. A macro is used to record a sequence of actions inside Vim. Once recorded, it can be executed multiple times using the repeat factor in vim. Folding: A method that is able to represent a range of lines with a single line of text. Through folding, users can get a good overview of the file content. Indentation: Indentation of text, especially program source codes, can be a tedious and time consuming task. The autoindent feature of VIM indents a line by the same amount of indentation as the previous line. The task of indenting C program code has been made easier with the cindent feature. It automatically indents C code and similar languages like Java and C++ in the way that most programmers want. The way of indentation can also be tuned to follow many different styles. The last type of indentation, which Vim is currently still working on, is a flexible scheme for indentation. It works by calling a user defined function that returns the preferred indentation. This would encourage users to write and contribute indent functions for different languages and thus aid other users in their indentation of the same type of file. Customizable: Using Vim Map feature, the user can map a key to a particular job that he performs repeatedly. The map feature has been exploited a lot while designing the CoVIM. The keys are mapped to not only perform an operation one local side but remote side as well. For details, please refer to Chapter 4. Vim allows users to modify the behavior of Vim via its own declarative scripting language. This scripting language is offers the complete collection of keyboard shortcuts and ex-commands and can also be used to author existing tools which enhances Vims syntax highlighting facilities or change the editors approach depending on the current file type. Scripting can be enabled in several ways. Script functions can be inserted in short segments into .vimrc file. Alternatively, a separate containing the functions file such as myscript.vim, can be created and placed into the Vim plug-in directory. When it is launched, Vim will automatically load any scripts residing in the script path a s if they had been added to .vimrc Documentation: It is very well documented VIM: How to use VIM? VIM can be used in various modes. It has got 6 fundamental modes and 6 derived modes (italicised in table below), thereby enabling the flexibility of moving across in 12 modes. Mode How to use this Mode? Insert Insert mode can be reached in several ways, but some of the most common ones area(append after cursor),i(insert before cursor),A(append at end of line),I(insert at beginning of line),C(change to end of line), ands(substitute characters). This mode is, in simple terms, used for inserting new text in the buffer. Normal Also known as the Command mode, whatever the user types in this mode are some kinds of commands. This is the default mode in Vim. It is mainly used for navigation and manipulation of text by the use of simple commands. For e.g., typing dd in this mode will delete a line in this mode, typing : will take the user to Commandline mode, etc. If the user is in any mode, he can always return to Normal mode by pressing Esc. Visual Visual mode is the visual representation of the Normal mode wherein the text on which any command is to be executed will be highlighted simultaneously so that the user could see for himself what text he is going to alter. In a nutshell, the mode is frequently used for navigation and manipulation of text selections. Details in Section 6.5. Select Similar to visual mode, but Select mode has a more MS-Windows like behavior. This means that if the user types a single character it replaces the selection. Of course he loses all the one key operation on selection likeUto make a selection uppercase. The user normally starts selecting a text to enter select mode or uses gH command to enter this mode. Details in Section 6.5 Command-line Behaves similarly to a command prompt where user is given one line to input his command after which it would be interpreted as a command, search or filter. At the end of the command, user goes back to the Normal Mode. For e.g., /word will find the text word in the document and highlight all instances. Then :s/old/new is used to substitute new text for all occurrences of old text. Ex-mode Similar to the command-line mode but optimized for batch processing i.e. user can enter multiple commands continuously until they leave the mode. The user can enter the mode by pressing Q in Normal Mode and exit by typing :visual. The user uses this mode to update (save) his changes to file or quit from the application. Operator-pending Similar to Normal mode, it is used for accepting motion to determine the text which will be operated on. For e.g., w means that a word will be operated upon. $ means that the text from current position to end of line will be operated upon. Operators are d for deletion, for indenting. So d$ will delete the text from cursor till end of line. Thus, the user uses this mode when he has a range of text to be operated upon and that range can be determined by a motion command. Details in Section 6.3 Replace Similar to the Insert mode but typing a new character overwrites the existing ones. The user enters this mode by pressing Insert key or typing R command in Normal mode. Replace Mode should be used when a majority of text is to be overwritten with a new text. For minor text replacements, user can always use r command in Normal mode. Details in Section 5.1 Virtual Replace Similar to Replace mode, but instead of file characters you are replacing screen real estate. Insert Normal Entered when CTRL-O given in Insert mode; this is like Normal mode, but after executing one command Vim returns to Insert mode. The mode is used when the user mainly wants to work in the Insert Mode but wants to use a few Normal mode commands off and on. For eg, type Ctrl-Ox to delete the current character and go back to typing in Insert Mode. Insert Visual Entered when starting a Visual selection from Insert mode, it ends in Insert Mode once the visual selection is completed. The mode is used when the user wants to use visual mode for a short while and quickly return back to the Insert mode for creating text. Insert Select Entered when starting Select mode from Insert mode, it ends in Insert mode. The user uses this mode when he wants to create text, select it to manipulate it and then go back to creating new text in the buffer. To enter this mode, just select the text using mouse while in Insert Mode. Chapter 4: Collaborative Technique and Birth of CoVIM System Architecture The figure on the left describes the architecture of the technique used to model CoVim: Single-User Application: The application with single UI and functionalities, oblivious of the collaborative components. For e.g., standard VIM application. Collaborative Adaptor: An additional software component built on top of SA to make it adaptable to underlying GCE. CA acts as a bridge between SA and GCE by customizing collaboration capabilities offered by GCE for SA. Thus, CA is aware of both SA and collaborative techniques offered by GCE. For e.g., CoVim. General Collaboration Engine: A framework which offers application-independent collaborative techniques, thus being oblivious to SA. It uses OT as an underlying principle for consistency maintenance. Collaboration Adaptor The CA is the most vital component for real-time collaboration. It serves 2 specific purposes: To convert single-user application for collaboration without making any changes to the existing application To reuse same GCE for different collaboration projects Following are the various modules of CA: CoVim Data Address Adaptation Data Addressing is regarded as the way how the textual information is referenced, and how it is being viewed by the user in an editing session. In Vim, every new file or existing file loaded into memory for editing is termed as a buffer. The buffer maintains information such as cursor positions, marks and text information. Although characters in a plain text document may be represented in a sequential manner, information in these buffers, including position of cursors and characters, however, is referenced by two parameters: line and column. Every buffer starts with line one and every line starts with column one. But CoVim still uses linear addressing space to access the buffer information. This has been possible because of line2byte method in Vi-script (i.e. Vim API) which converts information in a line into its bytes equivalent. And it is known that every character 1 byte, so byte equivalent of a line is actually number of characters present in the line. Similarly, byte2line method returns the line number of the character given the byte is known. And using little maths, the column of that character can also be found. This is needed because to correctly replay the effect, the linear position would have to be translated back to two parameters, line and column, so that the character can be correctly inserted at the correct position. With the linear addressing scheme created, CoVim could implement the basic OT data model for address adaptation. In this approach, the users point of view of the document would remain the same, where they would still visualize and refer characters position with line and column. However, in the APIs point of view, the modified addressing scheme had allowed characters to be accessed by their position references in the new linear addressing space. The relationship between the characters in the user interface and their position references in the linear addressing space is illustrated below: Inter-process Communication To further aid the explanation and comprehension of CoVims implementation, this section describes how messages are being exchanged between the SA and CA. Vim OLE: To pass messages to Vim Vim has provided an Object Linking and Embedding (OLE) interface which enables Vim to act as an OLE automation server, accessible from any OLE client. By making use of the interface, OLE clients would be able to execute OLE methods, which include sending keys (SendKeys) to and evaluating (Eval) script functions defined in Vim. CoVim external library: To pass messages from Vim Vim script has a built-in method called libcall which is used to call functions in external libraries. Vimcom.dll serves as the external library and also acts as an intermediary between the SA i.e. Vim and CA. Messages were passed from Vim into the function as arguments which were then forwarded to the CA via Inter-Process Communication methods. The method used in this case was SendMessage, which help guarantees the message is received before returning the libcall function. This is to ensure that no messages were lost which could cause inconsistency problem and disrupt the collaboration process. Interception of User-generated events The task of intercepting and processing the events at the local side is done by LOH. In CoVim, Vim script is used for interception of events such as key inputs. In CoVim, an array of all possible keys is created. This array is mapped and unmapped whenever the user enters/exits the Insert Mode. Similarly, all these keys behave as commands in Normal/Visual/Operator pending modes. So, they are mapped to methods which simulate the designated command on the remote sides. For e.g., r is mapped to the Replace method in Normal Mode which simulates r on the remote sides of the shared application Vim using libcall method as mentioned in Section 4.4.2 API-AO Implementation Adapted Operations (AO) play a very important role in the implementation of CA for the following reasons: AO represents the interactions between the user and SA: AO transforms the events produced by user interaction with SA into standard representations to be processed by OT for consistency maintenance. AO is also the representative of remote operation processed by ROH. AO acts as a bridge between API (SA- level) and OT (GCE-level): All the remote operations (indicated by AOs) are first transformed into suitable POs and then processed by OT. The OT-processed operation is interpreted by means of API to be suitable replayed at the remote side. Thus, AO serves as a common medium between these two processes thereby keeping OT independent of SA. As seen from the figure xxx, the POs available in GCE are Insert, Delete and Update. But being a text editor, all the operations in Vim can be manipulated in terms of Insert and Delete solely. This is because the text is never italicised or underlined or changed in font or colour, so Update is redundant. Thus, AOs only for Insert and Delete are needed in Vim. Mutual exclusion It is necessary that the LOH and ROH modules in CA are able to run concurrently as two processes but they should be mutually exclusive as well i.e. at one time only one of them should be active. This is done to enforce the atomicity of local and remote operations. For instance, during an atomic local operation, from the point where the local interaction is intercepted, till the time where the interaction is replayed locally, any remote operations received should not be allowed to process. But because of different communication paths taken for sending and receiving of messages, it is quite possible that the remote operation gets processed by CA before the local operation is played. For example, local operation O(L) = Insert[1,x] and O(R) = Insert[1,y]. Now since O(L) is generated before O(R) is received, the local side should contain xy. But if O(R) is replayed before O(L), then the local side text would be read as yx. However, on the remote side, the text should look like xy. This wo uld lead to inconsistency of the documents at two sides. So to avoid this trouble, it is possible to force the local operation to be played first. This has been done by implementing a lock in the Vim script. Now the local operation would first try to acquire this lock. Upon successful acquisition only, the function (operation) would perform its task; else it would return ignoring the input. Now when the remote operation comes to the local side, it would not be able to acquire the lock if it has been taken by the local operation. Once the local operation is replayed, it would give out the lock to remote operation to replay its effect. Inter-collaborative site communication To facilitate the various sites to collaborate, it is necessary to appropriately propagate and receive AOs.: It is important to see the format of serialized AO: siteid, adaptedoperation, numofprimitiveoperations {,type, pos, length, data}, type, pos, length, data where: siteid: id of site where AO is generated adaptedoperation = string called AO numofprimitiveoperations = number of POs in which this AO is to be translated into type = type of PO i.e. Insert or Delete pos = position where the PO takes place length = length of data modified data = text to be inserted/deleted , (comma) acts as the delimiter. For example, following are valid serialized AOs: g:CAAddress[bufnr(%)].,AO,2,Delete,.ipos.,.strlen(keys).,.keys.,Insert,.ipos.,1,.a:key g:CAAddress[bufnr(%)].,AO,1,Delete,.ipos.,.strlen(keys).,.keys Chapter 5: Replace Mode Implementation Requirements Analysis: How Replace works? The user can enter Replace mode with the R command in normal mode. The Insert key on keyboard toggles the mode between Insert and Replace. In Replace mode, every new character typed overwrites the original character written in the buffer. If there is no character to delete (at the end of the line), the typed character is appended (as in Insert mode). Thus the number of characters in a line stays the same until the end of the line is reached. If a NLis typed, a line break is inserted and no character is deleted. Even Delbehaves the same way as in Insert Mode i.e. deletes the character next to the cursor. The only exception being the use of BSi.e. Backspace. Backspacing in Replace Mode actually deletes the changes. The characters that were replaced are restored. If the user had typed past the existing text, the characters added would be deleted. This is effectively a character-at-a-time undo. Effectively, writing in Replace Mode is combination of 2 primitive operations: Deletion and Insertion. The user can exit Replace Mode by pressing Escto enter Normal Mode. Alternately, VIM provides r command in Normal Mode for quick replace of a character. It saves the user the trouble of shifting mode to replace the characters. The syntax of replace command is given as below: Esccountrx Where: Escis to enter the Normal Mode Countis the number of characters to be replaced xis the new character to overwrite the existing ones Lets see how it works: Assume the following text is written in a file and the cursor is on R of replace: I am going to test Replace command here Case 1: x is any key but Enter Now if the user presses Esc3rt Buffer: I am going to test tttlace command Case 2: x is Enter key Assume now he presses 2rEnter Buffer: I am going to test tt ace command here Where n means NewLine and r means carriage return So, it is observed that even though both t and l character have been replaced since count=2 but only one has been inputted. Summary: If x=Enter, Only 1 newline replaces the countnumber of characters Else, countnumber of x replaces countnumber of characters Note: x cannot b Del or BS. It has to be a printable character. After execution of this command, the user stays in Normal Mode. Thus, for minor replaces, it is convenient to use r command than changing the mode to Replace. Anyhow the author has covered both the implementations in his project. Design: Pseudo code Build: Coding Refer to Appendix B for Codes. Integration: Testing Once the code has been written, it is essential to test it for all possible imaginable inputs a user can enter. Even while the code was being written, the author had been running various Unit tests to ensure that the changes he is making to the code are yielding the expected results. In totality, the author has come up with following test cases to stress-test the replace functionality. What comprises of an exhaustive Test case package? Test (count = 0): As soon as the user presses 0, the cursor moves to the start of line. And then replaces the first character with the x Test (count 0): If count is negative, the Vim automatically ignores the negative sign and replaces modulus(count) number of characters with x Test (count 0): countcharacters are replaced by x Test (x = Enter): countcharacters are deleted but only one newline is inserted. Test (x = All other printable keys): countcharacters are replaced by x Test (x= Non-printable keys): Nothing happens. Remember that the syntax for r is r. Lets now focus on test cases for r replace command. Assume all commands to be independent of any previous command. Assume the text written in the test file is: I am going to test Replace command. Now, lets see what comprises of an exhaustive test case package for Replace Mode: Inserting a printable character at a position where buffer is empty: Inserts like in Insert Mode; Since no character is deleted so orig= NULL. Inserting at a position where a character already exists in the buffer: Deletes the original character and puts the character and its position called pos in buffer in origand inserts the newly typed character and its pos in new Deleting using Del key: Deletes the character at cursor Backspacing Pos in origand newexists: Deletes character at pos in newand inserts character at pos from orig Pos in origdoes not exist but exists in new: Deletes character at pos in newand does not insert anything; like Normal BS. If any character from replaceobstructlistis typed, origand newbecomes NULL. origand newdont contain pos: If BS is pressed, then it behaves like a Left Arrow i.e. nothing is deleted, only cursor shifts left. Note: replaceobstructlist: {Left, Right, Up, Down, PgUp, PgDown, Home, End, Esc} Lets now analyse few test cases for Replace Mode. Assume empty file. Also, assume all the operations mentioned in Test case are done in succession. The underlined shows the cursor position Chapter 6: System Testing and Integration Testing Strategy The following testing strategies have been followed by the author in order to stress-test the CoVim system: Functional Testing: The focus of testing has been to check whether the implemented features work according to the stated documentation of VIM rather than to check the non-functional requirements like Security, Scalability of the CoVIM application. The author has laid emphasis on testing the various commands offered by VIM, the operators and motions recognised in Vim and the modes available in Vim. Dynamic Testing: A variety of test cases have been adopted to counter all exceptions. For e.g., the implementation of backspace is an exceptional case in designing Replace Mode. Then there needs to be a separate handling for Enter key while implementing Normal replace command r. The author has had test cases for all exceptions. Integration testing: The whole CoVim application was broken down into its various consisting modules and each module has been tested individually first and then after integration with the whole system. The break-test-consolidate approach has been used for testing i.e. break into sub-modules, test and consolidate the sub-modules. For e.g., initially only the Insert Mode was tested and implemented. Thereafter, various commands of Normal Mode like J (join), r(replace), u(undo) etc were implemented and tested individually. Then it was tested whether integrating them together makes a stable system. One such test case (Test Case 9) which exposed the flaw while integrating Insert and Undo command is listed in Section 6.4 Grey Box Testing: The author had the access to implementation of the code to design appropriate test cases to validate the system against the specifications of VIM in its documented manual. System Testing: Once the entire system has been integrated together, test cases were run to see if the system is behaving as the same way as desired i.e. whether the document is consistent on both Local and remote side and also whether the behaviour of CoVIm replicates VIM. For e.g., test case 10 and 11 of Section 6.4 elucidate that even though the local instance of CoVim is behaving as desired, but sometimes the remote instance fail to adapt the new changes thereby leading to inconsistency of document at different instances of the shared application. Now lets look at the various test cases on Mode by Mode basis. Testing Insert Mode The Insert Mode of Vim is like a common text editor mode e.g Notepad. Thus checking for Insert Mode is basically checking if entering all keys on local side propagates them to remote side as well. Lets see what makes an exhaustive set of test case in Insert Mode: Test all the possible printable keys: They should be inserted at the specific cursor position. Test meta keys in conjugation with printable keys like Ctrl-U etc. These are called Special Keys and they have been listed in the Vim documentation: They should insert the character corresponding to them at the cursor position. Test conjugation of meta keys with non-printable keys like Shift-Del: Unfortunately, meta-keys have not been handled till the time of printing of this report and thats the reason for discrepancy between actual and expected result: In a scenario, where the operation only takes place on the Local side and does not propagate on to the remote side, one can use the following command to force sync all the instances of the application: :CoVim sync But, this command induces an extra NewLine character on the remote side which leads to error propagation because of Inconsistency in 2 instances of the shared application. Look at the following example: On the Local side (see left), we just have one string of text, while on the remote side (see right), after execution of the sync command, we have text string plus a newline. Now this newline is not understood by the local side. So if the user types something in the newline space of right instance, it would be appended on the left instance of the application without the newline character in the buffer. See the above figure. Testing Operator-pending Mode The common syntax of commands in Operator-pending mode is as follows: {count1}operator{count2}motion OR {count}operatormotion Where count=count1 x count2 Operator = c, d, y, etc Motion = j, k, l, aw etc Now following cases make exhaustive test cases: Checking whether all operators are implemented or not (Test case 1 and 4) Checking whether commands with count1 and count2 behave as if there was 1 count input equivalent to their product (Test Case 2) Checking which all motions have been correctly accounted for (Test case 3) Assume that the test file contains Testing for Operation-pending Mode Some of the test cases are listed below (Assume commands to be independent of each other): Testing Normal Mode The fact that VIM has a Normal Mode apart from just Insert Mode makes the editor special. Normal mode is basically used for executing various commands on the text like cut, copy, paste etc. Lets test the various commands available in Normal Mode in CoVim. To stress-test various commands, one should pay attention to operators, motion, count and undo commands Now lets see what makes an exhaustive test case for Normal Mode: Command: To test whether all the commands are executing as expected. For e.g, D should delete the entire line. Count: To test whether the command is executed number of times. For e.g, if the user presses d3w, 3 words should be deleted. Also to check what happens if is greater than possible. For eg, in a text with 2 lines, what happens if the user pressed 3D. Motion: To test whether the intended characters are modified or not. For e.g, $ should affect the text content between cursor position and EOL. Change of Mode: To test the commands which exit the Normal Mode after the execution. For e.g., c command ends in Insert Mode. Assume the following text written in the workspace and all commands to be independent of each other: This text, would be edited by Normal Mode commands Example 1 This text, would be edited by Normal Mode commands On the above text, execute this command: [emailprotected]/* */ qs: Starts recording macro to register s 3rt: Replaces 3 characters by t. This text, would be edited by tttmal Mode commands q: Stores 3rt to register s and stops recording further macro 5l: Moves cursor to right 5 times. This text, would be edited by tttmal Mode commands @s: Executes the macro stored in s i.e. executes 3rt at cursor position. This text, would be edited by tttmal ttte commands Example 2 This text, would be edited by Normal Mode commands Testing the Join command On the above text, if the user executes this command: 2J, the 2 lines will be joined as: This text, would be edited by Normal Mode commands Testing the Join command So, the NLis replaced by a Spaceand the cursor shifts to beginning of the newly joined line. Example 3 This text, would be edited by Normal Mode commands On the above text, execute this command: ma0d`a ma: Sets the mark at the cursor position i.e. N and calls this mark as a. 0: takes the cursor to Home. d: Starts deleting from Home until the next motion `a: The motion till the mark a i.e. till N. Result: Normal Mode commands Case 3: Test operator commands with motion In Section 6.3, the operator commands were tested. Lets test the various motions provided in Vim. Assume the operator command to be used be d. This text, would be edited by Normal Mode commands text Testing Visual and Select Modes More often than not, it is not easy to decide which command will move over the text that the user would want to change. In such a scenario, Visual mode comes in handy. It starts highlighting the text as the user is typing the required command. For example, to delete from halfway one word to halfway another word: This is an examination sample of visual mode - velllld This is an example of visual mode While doing this, the user doesnt really have to count how many to press l to end up in the right position. He can see what text will be deleted (in this case: ination sam) because it would be highlighted on screen. Thus, it is observed that Visual mode is a visual interpretation of the normal mode commands wherein an operator is needed. So, no special test cases are required to test the Visual mode. The operator commands working in Normal mode would work in Visual Mode as well. Select Mode, on the other hand, is the visual representation of the Insert/Replace Mode. The user can select the text using mouse or keyboard and the new key entered would replace the existing text. Again, no special test cases are required for Select Mode. The only difference between replace and Select mode is that a lot of text can be selected and replaced while in replace mode, it is one at a time overwriting of text. Chapter 7: The Last Words Conclusion The project was initiated in order to extend the implementations in the CoVIM so that it can be ready for release. As such, it was to be ensured that CoVIM undergoes a lot of testing from a users point of view. Thus, in this project, the author has been successfully able to integrate the Replace Mode to CoVIM and also has been able to test the current implementations of mappings in other modes. The test results have helped CoVIM come a long way in understanding and adapting to the erratic inputs of the user. Recommendations Nothing in the world is fool-proof and there is always a scope for improvement. A lot has been done till date to prepare CoVIM for its official release. A lot of improvements are still on-going. A detailed study of behaviour of Vim is required to analyse the working of all its different modes. A good understanding of the User manual will be the first step towards further advancement as it lists various exceptions in VIMs behaviour. Following are some key issues that can be taken into consideration to further make CoVIM mimic VIM-like behaviour: Interception of Meta-keys like Shift, Control, Windows, F2, F3 etc Interception of Mouse events to alter the buffer Providing option to Redo the change after Undo. Implementation of Repeat command i.e. . DOT command Providing implementation for Indentation commands i.e. and Handling abbreviations Providing options for Insert Mode completion of text (Ctrl+P) Providing implementations for various motions for Operator-Pending Mode Providing implementations for all key mappings for Select and Visual Modes Implementing Command-line and Ex Modes Bibliography Appendix A Vi vs Vim There have been numerous improvements in Vim over Vi. Given below is the summary of few such improvements: Multi-level undo: Allows you to set the number of times you can undo your changes in a file buffer. You can also redo an undone change. Multiple windows and buffers: Each file can be displayed in its own window. You can move easily from one window to another. Each file opened during a Vim session also has an associated buffer and you can easily jump from one to the other. Repeat a series of commands: Vim has a facility which allows you to record a sequence of typed characters and repeat them any number of times. Flexible insert mode: Vim allows you to use the arrow keys while in insert mode to move around in the file. No more hitting Esc, moving around, then hitting `i or `a. Visual mode: You can highlight sections of text and execute operations on this section of text only. Block operators: Allow selection and highlighting of rectangular blocks of text in order do execute specific operations on them. Online help system: You can easily find help on any aspect of using Vim. Help is displayed in its own window. Command-line editing and history: History allows you to use the arrow keys to repeat or search for a command that has already been typed. Allows you to match the beginning of a command with the beginning of another similar command in the history buffer. You can also edit a command to correct typos or change a few values. Command line completion: Using the Tabkey, you can complete commands, options, filenames, etc. as needed. Horizontal scrolling: Long lines can be scrolled horizontally (with or without the GUI). Text formatting: With two keystrokes, you can format large sections of text, without the use of external programs. Edit-compile-edit speedup: You can compile within Vim and automatically jump to the location of errors in the source code. Improved indenting for C programs: Vim gives you more control over how your C programs appear on screen. Searching for words in include files Vim allows you to search for a match of the word under the cursor in the current and included files. Word completion in Insert mode: Vim can complete words while you are typing, by matching the current word with other similar words in the file. Automatic commands: Commands automatically executed when reading or writing a file, jumping to another buffer, etc. Viminfo: Allows storing of the command line history, marks and registers in a file to be read on startup. Mouse support: The mouse is supported in an xterm and for MS-DOS. It can be used to position the cursor, select the visual area, paste a register, etc. Graphical User Interface (GUI) (Motif and Athena) : You can use the GUI and have access to a menu bar, scrollbar, etc. You can also define your own menus as well as do many operations with the mouse instead of the keyboard. Appendix B Source Codes Replace method for countrcharacter Appendix C Operators and Motions The motion commands can be used after an operator command, to have the command operate on the text that was moved over. That is the text between the cursor position before and after the motion. Operators are generally used to delete or change text. The following operators are available: c change d delete y yank into register (does not change the text) ~ swap case (only if tildeop is set) g~ swap case gu make lowercase gU make uppercase ! filter through an external program = filter through equalprg or C-indenting if empty gq text formatting g? ROT13 encoding shift right shift left zf define a fold The motions that can be used are: aw a word (with white space) iw inner word aW a WORD (with white space) iW inner WORD as a sentence (with white space) is inner sentence ap a paragraph (with white space) ip inner paragraph ab a () block (with parenthesis) ib inner () block aB a {} block (with braces) iB inner {} block a a block (with ) i inner block a[ a [] block (with []) i[ inner [] block

Sunday, May 24, 2020

In College Essay Samples Options

<h1>In College Essay Samples Options </h1> <p>Searching for the absolute best article layouts can assist you with firing up your composing try. Other than the things you ought to consistently recall, moreover, there are a few things which you shouldn't do while making the substance of your school paper. You should simply determine on the off chance that you need your paper to be conveyed. In this occasion, endeavor to hit the negligible words required and ensure that the article you will compose is pressed with significant data and valuable points of interest. </p> <p>Our affirmation article models can demonstrate that we're here so as to give essentially the absolute best help to guarantee you which you present an application exposition you could be sure about. By figuring out how to dismantle things and evaluate, you will likewise figure out how to make the announcements better.</p> <p>Writing a school affirmation paper can be intense. Understudies have occupied existences and habitually disregard a coming cutoff time. Try not to reorder exactly the same paper for every single school. </p> <p>Such a paper normally contains at least 250 words. It is basic that we sparkle in the span of our exposition. In addition to the fact that you will be in a situation to effortlessly find the data which you are looking, you could likewise get a smart thought of the manner by which a decent scoring paper takes after. For getting ready well for this basic segment of a college program, school article models have an unmistakable impact in managing the understudies the best possible way undoubtedly. </p> <p>A incredible school article isn't simply powerful, it's a piece which features the best possible mentality to the school, the individual goals and the vision the understudy has once they get in the school. It's significant the understudy has the capacity to build up a postulation explanation that is fitting with their goals. While picking the most appropriate school exposition themes, understudies should be quick to concentrate on the key thoughts they're endeavoring to go in their article. The understudy should be in a spot to share their qualities and dreams they try to accomplish when they get the event to get in the school in the conversation. </p> <p>For a start, the commonplace application paper points need you to utilize language that is thoroughly liberated from language defects and linguistic missteps. By and large, looking over the internet with the expectation of complimentary articles are frequently very testing. By method of model, a why us expositio n may talk about how extremely fascinating XYZ interdisciplinary undertaking is and the manner in which it fits pleasantly with your senior task. Let EssayEdge assist you with creating an application article which gets took note. </p> <p>College application paper, is a critical angle as it empowers the board, choose the best understudies that show the correct kind of inspiration, for situation into a couple of their projects. A school application paper is a generous methods for letting the board learn all the more concerning the understudy. Building up an astounding school article can lose its motivation in the occasion the substance of what you've composed isn't what the college is requesting. Composing the school application article can be among the most overwhelming components of applying to school. </p> <p>Just in light of the fact that you've just composed a school paper for a solitary college doesn't imply that it might likewise apply on your next applications. English majors have especially huge book costs since we have to buy a few books for each class. An update today that understudies don't should present their applications for instructors and educators to be able to present their structures on the Common Application! In this manner, a significant number of the understudies will focus on verifying they have the perfect evaluations to enter a specific school. </p> <p>One of the most troublesome aspects of school life is accounts. In the wake of finding our site, you will no longer should trouble loved ones with these sorts of solicitations. The inspiration to visit school and study lies at the highest point of the pyramid, between confidence and self-completion. To achieve this, conceptualize on themes which you're energetic about. </p> <p>Alcohol utilization among understudy competitors may likewise negatively affect their prosperity. Individuals began to gaze at me. Studies exhibit individuals who are genuinely dynamic are less disposed to be discouraged than idle people. Understudies can be viable from various perspectives. </p>

Thursday, May 21, 2020

Using The Right Essay Examples For College Success

Utilizing The Right Essay Examples For College SuccessToulmin Essay tests contain both content and designs that will assist understudies with writing brief and clear expositions. Understudies can feature watchwords and focuses just as organization their own essay.This kind of exposition is commonly utilized in more elevated level courses, however it tends to be utilized in a normal school level course. Understudies will get familiar with the essential aptitudes they have to compose well and spotlight on different zones of their examinations. This is a brilliant method to turn out to be progressively learned about the subject of the class just as become certain that their composing is correct.Students may utilize the example papers in different manners. One of the most well-known ways is to aggregate the writings into one huge paper for their group. The educators are frequently unfit to alter this kind of paper, however the essayists are typically ready to give the school editing. Thi s is a helpful alternative, as it sets aside less effort to set up the exposition for a class.Students can likewise utilize the papers for research and data purposes. Understudies may remember the exposition models for their notes as they explore on a particular subject. The instructors will regularly set aside the effort to peruse the material, which enables the understudies to settle on the best decisions for the paper.Students may even place the exposition models in their schedule, yet the educators will peruse it for the entirety of the material in their group. Understudies will have the option to be agreeable and certain that their data is right. These equivalent understudies can utilize the example articles for training in their group, which encourages them construct certainty just as test their skills.Students can make changes to the paper whenever during the way toward forming their own exposition. The Toulmon exposition tests permit understudies to rework the content and sp otlight on explicit viewpoints. They may even alter the text dimension, format, and hues to ensure that their assignments are perfect.Teachers and understudies can utilize similar assets, which improves the probability that the work will be fruitful. Educators can give criticism to understudies just as to the understudies to survey the work. The understudies can utilize the examples as an apparatus to proceed to improve and deal with the better purposes of their own essay.When choosing the article tests, understudies should choose the ones that they feel will support them. Sometimes, understudies might need to utilize a similar exposition however many occasions as would be prudent so as to make a durable and intriguing piece. There are a wide range of various alternatives, which can assist with making a firm and lucid article. There are numerous assets on the web, which can assist the understudy with finding the ideal article for them.

Monday, May 18, 2020

Effective Academic Writing Tips - How to Write a Short Essay in 3 Easy Steps

<h1>Effective Academic Writing Tips - How to Write a Short Essay in 3 Easy Steps</h1><p>Writing a viable scholarly composing is not, at this point a special case. It is an absolute necessity nowadays so as to contend with the others in the activity advertise and getting a higher evaluation is the main way you can intrigue your forthcoming business. Here are a few hints that you can attempt so as to improve your performance.</p><p></p><p>The first tip is to utilize an investigative procedure in your paper. Scholarly composing expects you to investigate and make an end. This is finished by gauging and assessing the two sides of a contention, examining the qualities and shortcomings of each side, and afterward concocting an end that you accept will best suit the peruser. At the point when you are composing an exposition on a specific subject, it is significant that you experience all the subtleties and concoct an end dependent on your findings.& lt;/p><p></p><p>The second tip is to consistently give significant data and realities that will assist the peruser with understanding the contention. Abstain from writing to help your focuses, yet rather be there to help the point that the author is attempting to demonstrate. It is likewise significant that you monitor the contentions so you can dispose of superfluous data and break down the realities objectively.</p><p></p><p>The third tip is to ensure that you utilize clear language. Recollect that the word 'you' is one of the most famous words today, and it isn't difficult to mistake this word for 'you', 'me', 'the', and various different words. Ensure that you maintain a strategic distance from these slip-ups in the composition and rather focus on the principle thoughts that are being talked about. It is additionally significant that you use words that are clear, simple to peruse, and concise.</p><p></p><p>The last note is to utilize a style that is anything but difficult to peruse and comprehend. There are numerous online assets that you can use to ensure that your article resembles a simple read. Likewise, in the event that you need extra help, look at certain manuals on scholarly composition, take a class in English, or get the assistance of an English tutor.</p><p></p><p>Another thing that you have to recollect is that acceptable scholastic composing necessitates that you have some great research aptitudes. Prior to composing your paper, ensure that you have completely inquired about the theme, the writer, and the wellsprings of information.</p><p></p><p>Ensure that you study the scholarly composing tips cautiously with the goal that you can turn into a specialist in this field. In the event that you follow these tips, you can compose a powerful scholarly composing easily.</p>

Monday, May 11, 2020

Essay Topics For Interview - The Best Solution

<h1>Essay Topics For Interview - The Best Solution</h1><p>The reason for exposition subjects for the meeting is to locate the best match between your aptitudes and capacity and the necessity of the organization you are applying for. There are numerous approaches to explore and pick the point, yet the best route is to get their assistance. While inquiring about the organization, ensure that you know the field of ability that they are recruiting in. Continuously pick the best fit.</p><p></p><p>Short exposition points for meeting should address the most significant issues. The primary thing that the questioner would inquire as to whether you have past involvement with the activity. Since, the organization is surveying you for their future turn of events, this is the correct time to show that you are equipped for taking care of the errands. You should make reference to all the encounters that you have and can apply in this activity. Clarify why i t is reasonable for you.</p><p></p><p>This is the best piece of your short article themes for meet. Tell how you can coordinate your insight and aptitudes to the necessities of the organization. Attempt to know the significance of the errands that you will do. Rundown down all the errands you can do and list down the focuses that legitimize your significance to the company.</p><p></p><p>Remember, the primary motivation behind short exposition points for the meeting is to introduce your character. With this, be inventive and fascinating. Be directly to the point, and utilize your insight into the job.</p><p></p><p>If you feel that you need abilities or information, attempt to list down the aptitudes and information that you have. Ensure that you utilize the abilities and information that you have positively. You may likewise share a few encounters that can give your answer a superior outlook.</p><p>&l t;/p><p>When doing your examination, attempt to discover a few responses to various issues. Listdown the most widely recognized issue that you experience with different organizations. Utilize your encounters to take care of these issues, and afterward attempt to assemble a relationship with the organization. This will make an enthusiasm of the organization to employ you.</p><p></p><p>There are numerous normal zones where there are clashes in the work environment. How you will settle the contentions must be talked about. You can utilize the gathering as a venturing stone for different things. That is the reason, talk about the most usually acknowledged guidelines and guidelines in the organization.</p><p></p><p>Using the data that you accumulated from short article themes for meet, apply it to the given circumstance. Along these lines, the aptitudes and information you have been consolidated and are given a superior view. In th e event that you are as yet unsatisfied with the appropriate response, discover an organization that has involvement with these inquiries. Along these lines, you will have the option to accomplish better results.</p>

Friday, May 8, 2020

Investigative Essay Examples - Learn How to Write Good Research Papers

Investigative Essay Examples - Learn How to Write Good Research PapersIf you are writing a paper that will be used as part of your final exam, you need to write compelling, quality research papers using the available Investigative Essay examples. Many students also make the mistake of writing poorly researched essays that are not interesting enough to pass.In order to write a good research paper, you need to develop an extensive knowledge of the subject matter and use all of the research tools and techniques that are available to you. In order to do this, you will want to use all of the best research tools available. Some of these tools are especially designed for students who want to improve their written and oral skills. Although they may not be available at all times, when they are, you should utilize them.One of the best sources of investigative essay examples can be found in online websites. Many teachers will have free or low cost resources available to them which they can acce ss to help teach their students how to write well-researched papers. They may also offer private tutoring which can assist their students in improving their own ability to write good research papers.Using Investigative Essay examples and tools, you will be able to enhance your writing skills and prepare yourself for passing your paper. Each student is different and you will be learning from one different perspective. You will want to choose your writing method that will work best for you so that you can avoid giving a bad first impression to your instructor.Many investigative essay examples are not meant to be read by readers, but rather they are intended to be used by students as a resource. This resource is what the student uses to learn the mechanics of good research. If you are not certain how to create your own resource, you can purchase a good resource guide. These are available in different topics and are usually quite informative and very helpful.One of the best Investigativ eEssay examples is one that will show you how to determine which facts are important and which ones you can skip over. They can be found in many of the different websites and can be downloaded for your own use. You should be able to download them for free to give you a good idea of what you will need to do to prepare your research papers.Once you begin writing your paper, you should take notes on anything that you discover about the topic. The Investigative Essay examples you can find on the internet can help you to write better and more convincing paper. The information you gather will make your final draft more persuasive.Finally, you need to write your paper well. You will want to be sure that you are concentrating on doing a thorough job of the research and that you are keeping the text short and easy to read. You can help yourself and your instructor by following some Investigative Essay examples to help you.

Wednesday, May 6, 2020

Speech At Maharishi University Of Management And Bill Gates

A commencement speech is a speech given to graduating students to congratulate them on earning their degree and used to give them a few words of advice before they go. However, commencement speeches do not always have the same message. The speeches will vary between speakers and I will analyze two commencement speeches and show how different they can be from one another. These speeches are: Jim Carrey’s speech hosted at Maharishi University of Management and Bill Gates speech hosted at the University of Harvard. The differences analyzed between the speeches will be the general topic, how the topic is delivered, how the text appeals to values and emotions, how the topics are made credible, and the evidence behind the claims. Jim Carrey and Bill Gates were bred from different worlds. Carrey is a comedian, while Gates is an entrepreneur. Their backgrounds reflect on the topic of their commencement speeches. Carrey favored the relationship of love and fear, while also giving pract ical advice; while Gates related his experiences to try and convince people to try and change the world, through examples of turmoil. Overall, Carrey focuses on the realization that keeping people who are the closest to your heart is all that matters, while Gates says that helping people in need is the greatest thing you can do. Carrey’s point is proven when he mentions that making people enjoy life as much as his dad did has always been his greatest goal; while Gates topic is proven when he tells theShow MoreRelatedSpeech At Maharishi University Of Management And Bill Gates1273 Words   |  6 Pagescommencement speech is a speech given to graduating students to congratulate them on earning their degree and used to give them a few words of advice before they go. However, commencement speeches do not always have the same message. The speeches will vary between speakers and I will analyze two commencement speeches and show how different they can be from one another. These spee ches are: Jim Carrey’s speech hosted at Maharishi University of Management and Bill Gates speech hosted at the University of HarvardRead MoreDeveloping Management Skills404131 Words   |  1617 Pagesfor courses in Principles of Management, Human Resources, Strategy, and Organizational Behavior that helps you actively study and prepare material for class. Chapter-by-chapter activities, including built-in pretests and posttests, focus on what you need to learn and to review in order to succeed. Visit www.mymanagementlab.com to learn more. DEVELOPING MANAGEMENT SKILLS EIGHTH EDITION David A. Whetten BRIGHAM YOUNG UNIVERSITY Kim S. Cameron UNIVERSITY OF MICHIGAN Prentice Hall Speech At Maharishi University Of Management And Bill Gates A commencement speech is a speech given to graduating students to congratulate them on earning their degree and used to give them a few words of advice before they go. However, commencement speeches do not always have the same message. The speeches will vary between speakers and I will analyze two commencement speeches and show how different they can be from one another. These speeches are: Jim Carrey’s speech hosted at Maharishi University of Management and Bill Gates speech hosted at the University of Harvard. The differences analyzed between the speeches will be the general topic, how the topic is delivered, how the text appeals to values and emotions, how the topics are made credible, and the evidence behind the claims. Jim Carrey and†¦show more content†¦Carrey is humorous on his approach and his delivery keeps people on the edge of their seats as they await what he has to say next. In contrast, Gates is focused on a very serious approach to his speech, showing h eart wrenching examples to sell his point. Carrey had the audience laughing the entire speech with jokes in reference to flashing breasts for Mardi Gras, and gags famous in his old skits. However, the delivery from Gates was on the other end of the spectrum. He used examples of hardship and statistics to cause sorrow towards people who are less fortunate causing guilt in the crowd for not doing more. Both speakers utilize expected characteristics in their speeches, as Gates and Carrey are from different background, both use a contrasting style of delivery to the audience. Value and emotion are key parts to any speech and how they are delivered is what sells the speaker’s topic. Both Gates and Carrey understand this and use different techniques to create different emotion and value within the audience. Carrey’s speech mostly caused laughter and connectedness toward the audience, while Gates’ speech affected thought-provoking and sorrow from the graduates, as prev iously stated. The emotion of both speakers, although different, help reflect value from the graduates to their respective points, as different emotions will perceive different ideals and thoughts from the graduates. The point being that Carrey will create a warming tone as opposed toShow MoreRelatedSpeech At Maharishi University Of Management And Bill Gates1273 Words   |  6 Pagescommencement speech is a speech given to graduating students to congratulate them on earning their degree and used to give them a few words of advice before they go. However, commencement speeches do not always have the same message. The speeches will vary between speakers and I will analyze two commencement speeches and show how different they can be from one another. These speeches are: Jim Carrey’s speech hosted at Maharishi University of Management and Bill Gates speech hosted at the University of HarvardRead MoreDeveloping Management Skills404131 Words   |  1617 Pagesfor courses in Princ iples of Management, Human Resources, Strategy, and Organizational Behavior that helps you actively study and prepare material for class. Chapter-by-chapter activities, including built-in pretests and posttests, focus on what you need to learn and to review in order to succeed. Visit www.mymanagementlab.com to learn more. DEVELOPING MANAGEMENT SKILLS EIGHTH EDITION David A. Whetten BRIGHAM YOUNG UNIVERSITY Kim S. Cameron UNIVERSITY OF MICHIGAN Prentice Hall

Tuesday, May 5, 2020

Challenges for Tourism and Hospitality Industry

Question: Discuss the challenges for tourism and hospitality industry. Answer: Part Culture has socially accepted the behavior of all the social classes. It defines the role and the behaviour of members at the workplace highlights the importance of social status and social goals, which every class needs to attain. It defines the appropriate attitude according to the social norms. Cultural diversity is an integral aspect for companies in the tourism and hospitality sector as they function in the international arena and workplace will include people from a different culture (Yvette, 2012). The management of personnel regarding cultural diversity is critical as the relationship between clients and employees depend heavily on the management of cultural diversity. Failure to do so may result in an adverse relationship between clients and employees. It might lead to low level of satisfaction among customers and may cause irritation among employees. (Yvette, 2012). The tourism and hospitality industry is customer orientated and made for and by the people. Therefore catering to the needs of the customers and understanding the cultural differences between different individuals is a must. The success of any organisation in this sector lies in understanding the diversity in culture and realising that such diversity is a gift to the organisation (Yvette, 2012). The markets in tourism and hospitality sector flaunt the diversity of different culture. The international clients belong to different cultures. Therefore, it is important to under these cultural diversity is the foundation of the organisation. These culturally diversified individuals constitute the rich pool of client base and thus it is integral to understand and adapt to the needs and requirements of different cultures and adapt to the different language requirements beside English (Yvette, 2012). Part B Theresa. L Guido. S (2012). Cross-Cultural Interaction between tourists and a destination's residents in Andalusia, Spain. Advancement in Hospitality and Tourism and Marketing Management 23(2) , 58-70 The article stresses the importance of tourism and the impact it has on both the tourists and the host nation. It stresses on the fact that tourism not only fosters effective understanding of cultures but also brings about a global harmony and understanding. The journal article aims at not only establishing the cross-cultural interaction initiated by tourism in Andalusia but also highlights the local's perception and contribution towards tourism. Factors that motivate the tourists to travel and tour a place frequently are explained and the behaviour of Germans tourists to the destination place is highlighted. The research article stresses on the need of a destination spot where tourists could meet and interact with locals, which could foster better cultural understanding and also highlight the positive picture of the country. It stresses on the development of tourism in Andalusia in Spain (Theresa Guido. 2012). The article discusses the importance of cross-cultural interaction in tourism and hospitality sectors. The article highlights the factors and the positive impact reflected by cross-cultural interaction imprinted by tourism. It stresses the importance of cultural understanding and cultural diversity in Andalusia and in general overall. However, certain limitations and shortcomings in the cultural interaction are mentioned based on the lack of communication and misunderstanding on the part of the hosts and tourists. It highlights the perception level and the cultural difference to be one of the causes. The article also stresses on the tourist typologies and classifies Germans as friendly and outgoing and interactive class of tourists. The reaction of locals of Andalusia towards tourism is also highlighted. The intercultural interactions and willingness of the locals to interact with tourists were recognised in the research article. The potential problems of the locals in communicating were recognised and a destination point was decided to be developed to initiate and promote cross-cultural interaction. Online survey and questionnaire were required to conduct the research (Theresa Guido, 2012). The research article holds key importance to the essay regarding the cultural conflicts and cross-cultural interactions and the limitations in the process. The research article extensively talks about the potential problems and the factors that cause cultural differences and conflicts. The resource is reliable and conducted through an online survey and questionnaire. The survey clearly outlines the responses of the locals and depicts the attitude of hosts towards guests. Therefore, on careful evaluation and assessment, it can be viewed that the article holds strong correlation with the topic of assessment 2. Reference List Aitchison, C., MacLeod, N. E., Macleod, N. E., Shaw, S. J. (2014).Leisure and tourism landscapes: Social and cultural geographies. Routledge. Briassoulis, H., Van der Straaten, J. (Eds.). (2013).Tourism and the environment: regional, economic, cultural and policy issues(Vol. 6). Springer Science Business Media. Crouch, D. (2013).Leisure/tourism geographies: Practices and geographical knowledge(Vol. 3). Routledge. Figini, P., Vici, L. (2012). Off-season tourists and the cultural offer of a mass-tourism destination: The case of Rimini.Tourism Management,33(4), 825-839. Kim, J. H., Ritchie, J. B. (2014). Cross-cultural validation of a memorable tourism experience scale (MTES).Journal of Travel Research,53(3), 323-335. Lozano-Oyola, M., Blancas, F. J., Gonzlez, M., Caballero, R. (2012). Sustainable tourism indicators as planning tools in cultural destinations.Ecological Indicators,18, 659-675.