Wednesday, August 26, 2020

Sustainable Leadership and Organization

Question: Examine about theSustainable Leadership and Organization. Answer: Presentation: The associations need better initiative to guarantee they accomplish their set targets later on. Notwithstanding that, the supportable initiative is essential as it guarantees different changes are made and acceptable administration to offer quality types of assistance to the customers. The pioneers ought to be dependable in all the exercises and utilize their forces to deal with the association as required. The accomplishment of the foundation profoundly relies upon the pioneers who have the order to settle on choices that will enable the association to succeed. The basic choices they gain for the ground of the organization ought to be regarded and clung to, to guarantee the smooth running. Besides, there ought to be acceptable progression of correspondence structure the chiefs to the subordinates. It guarantees that the directions given arrive at the youngsters as proposed. The mutilation of the data prompts clashes at the working environment and the representatives wind up reprima nding the bosses for their unfortunate behavior. Be that as it may, the best possible correspondence at the association guarantees that the complaints of the laborers are known by the administration and mulled over. The conversation traces about the maintainable authority model that is appropriate for human services. Practical Leadership Model for Healthcare The medicinal services establishment is profoundly relied upon by people in general to provide food for their wellbeing conditions and guarantee that there is progression of life. The doctors and other particular expert in the human services undertakings work admirably in guaranteeing that the wiped out people are joined in. The patients have different diseases and it is the obligation of the specialists to discover the sort and the necessary clinical treatment. The emergency clinic the executives guarantees that there is an accessible medication to treat the debilitated and furthermore affirmation for the basic conditions that needs every now and then exam. The initiative at the human services associations decides the kind of care the individuals will get. There are different associations that pioneers are not worried on the advancement of the foundation and disregard their obligations. The subordinates likewise see them as their good examples and how they do their duties. It makes the lesser staff individuals likewise not play out their doled out errands in the correct way. They disregard their obligations and the wiped out people do not have the fitting clinical consideration they require. It frequently prompts numerous people groups wellbeing falling apart and thus many losing their lives all the while. The legislature of the state has guaranteed that it financial plans the clinical assets in the yearly nation spending plan for different services. The service of wellbeing is frequently given the need as the nation thinks about the residents. The better medicinal services guarantees that the economy of the state is steady the same number of people will be sound and ready to play out their errands. The profitability of the residents profoundly relies upon the wellbeing conditions (Carter et al, 2005). The manageability of the initiative guarantees that there is consistent improvement of the status quo did in the medicinal services offices. There ought to be estimation of the human life and the great direct of the people dealing with the wiped out. The pioneers should deal with the obligations and duties alloted for the smooth running of the association. The individuals are characterized by their standards and the dedication they have in doing their assignments. A decent pioneer should be a good example to the subordinates to guarantee they additionally go to their obligations as doled out. The conduct of the supervisors is procured by the lesser staff and finally the entire organization completes the assignments similarly. The great deeds of the administration will likewise reflect to the administrations being given to the customers. It is energetically prescribed for the people maintaining initiative to act capably for the smooth running of the association. Ensure that the organi zation doesn't crumple and it keeps on conveying the quality administrations to the individuals. The human services establishment ought to be taken care of well by the mindful pioneers who are happy to change it to the following level. There ought to be improvement of the administrations being rendered to people in general and how they are completed. The specialists ought to likewise be mindful in getting the wiped out guarantee they don't analyze the patients wrongly (Ulrich Smallwood, 2013). The pioneers ought to get change the social insurance association by actualizing different changes. Then again, there ought to be techniques set to enable the establishment to accomplish its objectives and goals later on. The accomplishment of the association exceptionally relies upon the initiative that is executed. Above all else, the pioneer should assume liability of the considerable number of exercises occurring in the association. They should all be observed occasionally to guarantee that all the representatives handle their assignments appropriately. The pioneer ought to be liable to anything that happens. The direct of the doctors under the pioneer is exceptionally dictated by the guidelines and guidelines set. The great administration ought not engage the unfortunate behavior of the laborers as they will prompt the breakdown of the association or discoloring its name. It is the obligation of the pioneer to caution the people or probably fire them on the off chance that they don't change. Then again, delay at work ought not be supported as it prompts delays in conveying the social insurance administrations to the individuals. The specialists should be dynamic and react promptly to the cases emerging with respect to the wiped out people. It guarantees the avoidance of death or any unfavorable condition on the person. All the people working in the human services company should deal with the errands allocated as required to guarantee the smooth running of the association. The laxity in the different offices ought not go on without serious consequences as it will postpone different procedures (Hargreaves Fink, 2006). Besides, they ought to include the other staff individuals and workers in the dynamic. It will guarantee that the individuals air their opinion of the current issue and give differing approaches to deal with it. The contribution of different people causes them to feel as a major aspect of the association and not dismissed. As a decent pioneer and for good supportability the organization of the establishment ought to include different gatherings. The numerous people together regularly concoct an incredible choice other than an individual creation the choices all alone. It likewise persuades the subordinates as they feel perceived and increased in value by the administration. Through this, significant choices will be made that will guarantee the accomplishment of the association. Then again, the representatives will work tirelessly to meet their objectives and guarantee the objectives and goals of the association are met. The administration of a specific organization isn't a simple ass ignment as everybody admires you for its advancement. The disappointment of the organization is constantly accused on the overseeing chiefs as they administer the enterprise. It requires duty and having the option to manage the emerging moves that yield up every now and then. The social insurance is frequently looked by different difficulties, for example, absence of medications and exceptional gear to analyze illnesses. The administration should concoct methodologies that will guarantee they get the medications and guarantee that there is no deficiency consistently. It will help treat the wiped out and furthermore convey quality administrations to people in general (Hutcheson, 2007). Thirdly, the projects to help the wiped out in the general public ought to be actualized in order to regard them as an indication of gratefulness for the proceeded with help. It will be a decent move to help the network the same number of individuals can't access to the cutting edge treatment because of the absence of assets. The greater part of them keep on depending on the conventional techniques for restoring ailments that are not powerful. Notwithstanding that, there are no defensive measures embraced by the people controlling the fix in the conventional manner. It regularly prompts the contracting of the ailments in the event that it is infectious and that ought to be forestalled. Additionally, while dealing with the injuries they don't guarantee they sterilize it to murder the germs. It prompts the injury to increment antagonistically and consequently making more agony and harm the body of the wiped out person. To help change this circumstance, the projects to help the debilita ted in the general public ought to be actualized. It will be a decent indication of the practical administration that will carry an extraordinary change to the method of completing things. The medicinal services will be valued by the general public as it will recuperate the wiped out and guarantee the progression of life. The conventional techniques are now and again dangerous if not dealt with well and numerous people wind up losing their life. The human services organization will be critical by sparing the people groups lives and the network will exceptionally appreciate. It will exceptionally decrease the reliance on the customary strategies for restoring the wiped out and help the individuals center around the cutting edge treatment that it is useful and solid (Soyka, 2012). Fourthly, the pioneer ought to guarantee that the doctors that are utilized in the human services association are qualified and meet the necessary prerequisites. In addition, they ought to related knowledge in dealing with the debilitated or relying upon their specializations. It will guarantee that the wiped out are dealt with in the correct manner and the solutions directed according to the ailment. There are specialists who are not exceptionally qualified and they wind up diagnosing the patients wrongly. It prompts different complexities in the body of the person as one consumes the medications that are not proposed for the disease that one is experiencing. The cases have been knowledgeable about different associations and without the prompt consideration the people lose their lives. The organization winds up at risk for confronting punishments for the error done by the specialist. In addition, the specialists should likewise meet the capabilities to assist them with performing me dical procedure on the I

Saturday, August 22, 2020

Just War Theory an Example of the Topic History Essays by

Simply War Theory For if a gathering characterized by the opportunity of birth is oppressed, it is as if its individuals had not been naturally introduced to humankind at all Richard Vernon Need paper test on Simply War Theory subject? We will compose a custom paper test explicitly for you Continue The general postulation of the article, What is Crime against Humanity, is fundamentally breaking down the ideas of the violations against mankind that are consolidated into global law. The article raises addresses pertinent in the thought of deciding or partitioning what might be viewed as a Just War versus that of an Unjust War. Individuals Very Often Tell EssayLab pros: What amount do I need to pay somebody to compose my task on the web? Proficient journalists prompt: Buy An Essay Which Will Lead You To Your Academic Success If you don't mind Help Me Write An Essay College Papers Online Pay People To Write Papers Essay Writing Services In building up the contentions utilized in this article, Vernon gets models from St. Augustine, the size of misleading quality as it applies to privateers adrift, alongside various content references on the Just versus Unjust War banter. The creator clarifies the ethical contrasts of partition of foes of a race or ethnicity, versus the detachment of adversaries of mankind or humankind. The writer considers an assortment of moral hypothetical contemplations and standards of the Just War banter in his composition. Vernon composes with respect to the moral defense of war while analyzing a few legitimizations regarding their individual qualities and shortcomings. The creator talks about the idea of how much if any intention would should be engaged with setting the rightness of the Just War follow up on the correct side of being simply (Vernon, 2002, p.245). Generally all through the article I feel more inquiries are taken care of to the peruser while once in a while confounding the learning procedure of this previously muddled subject. For instance, while introducing the articulation unspeakable atrocity, the creator raises that the triteness of such an articulation as violations against mankind could too portray youngster misuse, or the brutal treatment of creatures, or hard decreases of government assistance installments to the constantly poor (Vernon, 2002, p.237). Later while giving data with respect to measuring insidious, the creator starts talking about examinations: By what means would it be advisable for us to embarked to think about the malevolence done by the Holocaust, by African subjugation, and by the (close ) eradication of aboriginals in North America? On the off chance that we utilize a body tally, at that point African subjection executed a larger number of individuals than the other two. On the off chance that we are taking a gander at the extent of the objective gathering executed, at that point the native case is the most noticeably awful. On the off chance that we are taking a gander at paces of killing every day, one may add, the Rwanda decimation outflanks each of the three. On the off chance that we were taking a gander at how much casualties were constrained to team up in their own decimation (Vernon, 2002, p.238). I trust Vernon frequently intentionally offers more conversation starters than answers in this article. I realize this can be utilized to inspire perusers to teach themselves while framing their individual sentiments on a specific subject. Be that as it may, I need to state that at the current non-master level of information I have of this specific subject, I would regularly see this as more confounding than supportive. Coincidentally, the above was most likely just a single portion of the section of inquiries the creator remembered for simply this one territory. The creator included an assortment of moral hypothetical translations while sporadically including his own understandings alongside these. For instance, Vernon talked about St. Augustines convictions with respect to awful state acts while relating a portion of the data to Roman political life. Vernon partitioned and talked about the different classes of helpful wrongdoings. When all is said in done, somehow, I feel the creator gave exact proof that can relate to the simply war banter. Through getting instances of others points of view, perceptions and encounters, the region of experimental proof was genuinely secured. The incredible larger part of the proof was obtained from writings regarding this matter. For instance, Vernon frequently cited from The Contract of Mutual Indifference, a book composed by Norman Geras (Vernon, 2002, p.244). The work endeavors to introduce a comprehension of barbarities as they identify with universal and national strategies and governmental issues. One of the musings the creator ponders is the way neither state duty nor network obligation give sufficient security to its kin. One statement he remembered for respects to WWII was that People went to their demises at Auschwitz or Treblinka, despite that there were some other people who thought about them (Vernon, 2002, p.244). The creator gets what may be viewed as the bigger parts alongside the more subtle proof in examining the Just-war banter. Vernon addresses the mankind as-casualty proposal which was presented at Nuremberg by the French indicting lawyer. In examining this, the creator raises the distinction of the shamelessness of wiping out specific races alongside the diverse unethical behavior of declining to impart the earth to a specific people. (I will in general consider them to be likely the equivalent). Here again there were questions that one may leave more baffled than lit up. The inquiry was posed, Why might mankind be without importance without assorted variety? (Vernon, 2002, p.240). I feel the writer reaffirms the multifaceted nature of the subject, helping the peruser to comprehend why there are such huge numbers of misconceptions and contrasts in feelings in the zone of violations against humankind and the discussion of Just War. Vernon was fruitful in concentrating on numerous significant subjects in the Just War banter. Truth be told, here and there I felt the topics went everywhere and could have been progressively engaged. One of the shortcomings of the article as I would like to think is that the writer is endeavoring to break down an unpredictable issue, and as I would see it, Vernon makes the issue significantly more perplexing as opposed to unwinding or understanding anything through his 18 page examination. The article was written in an exceptionally scholarly style. This isnt essentially a negative all by itself however it can constrain ones potential crowd of this subject who are in their previous phases of learning the subject than he is in examining it. I saw the qualities of the article as when the writer would get data from outside sources. For instance, since I have some close to home interests in genuine privateers, I found the piece of the article intriguing when he examined robbery points of reference and how privateers ought not go unpunished essentially on the grounds that they worked adrift (Vernon, 2002, p.235). The material is persuading as I would like to think for the most part because of the outside assets Vernon utilized in tying up the master plan of the Just-war subject. Another asset is utilized each time he raises an alternate part of Just and Out of line War therefore giving the peruser fortified clarifications to the subject. Be that as it may, I do feel that the creator conceivably attempted to cover too wide a wingspan of data here. I know as a peruser I could see this data being isolated and spoken to in even as not many as three complete readings or much more by concentrating on each edge in turn introduced in this perusing. At long last, subsequent to having perused the entirety of the data in the article, What is Crime against Humanity, I feel that the extraordinary polarity or ironic expression discovered naturally inside endeavoring to of join altruism with that of war have in themselves made a disarray that neither rationale nor conversation can disentangle effectively if by any stretch of the imagination. With respect to this specific piece regarding the matter, I genuinely need to state generally it left me progressively confounded regarding the matter. References Vernon, R. (2002). What is Crime against Humanity. The Journal of Political Philosophy, 10:3, 231-249

Tuesday, August 11, 2020

On Worldviews and Reading Widely

On Worldviews and Reading Widely This post is part of our International Womens Day celebration. See all the posts here. In the last few years, mostly by the influence of the rad community here, Ive made my reading choices 100% more deliberate than they ever were before. In addressing that, Ive read some awesome books that have significantly affected my worldview and broadened my cultural knowledge in ways my anthropology classes during university didnt. And since were talking about this on International Womens Day, Im going to narrow the scope down to a few lady-authored books. Im a teacher. My first couple of years teaching I was in Japan and only generally had to be sensitive to one culture in my students, and this includes naming conventions and pronunciations. Ive always felt that names are important, but it wasnt until I moved back to Miami and started teaching at a school with a much more diverse student body that I came to realize just how. Whenever I meet new students now, the dialogue begins with questions like, Is your name in English or Spanish? or What language do you speak at home?. Theres such meaningful cultural exchange there, and it gives kids the opportunity to share a piece of themselves with me they dont really get asked about by adults often. That and, you know, treating young kids with respect and learning their names correctly has become super important to me as a result of my experiences. One day, I was teaching Kindergarten and I came across a name very similar to that of Ifemelu from Americanah by Chimamanda Ngozi Adichie. I asked the little girl, Are you, or is your family from Nigeria? Her eyes lit up, and she replied that yes, besides her father, all of her family is from Nigeria, and how did I know? Nobody ever figures that, and please let me explain to you what my name means, because I love my name. Im no expert, and this is more than a little bit serendipitous because I had some knowledge from having read that book, but Im taking it. Its one of the most satisfying in-school moments Ive ever experienced thanks to the power of reading books by people who are different from myself. Weve talked about Roxane Gays rad essay collection Bad Feminist before, and how necessary it is to look at race and gender and media portrayal with a critical eye. Its a brave collection, not just because of the general subject matter, but because some of the essays are deeply personal and revealing of the authors life experiences. Bad Feminist, for me, was validating and informative, but then I read Gays An Untamed State,  which took me seriously out of my comfort zone. I cant express enough how deeply affected I was by that book, which is about a woman who is kidnapped in Haiti by a group of people who had demands of her father. Its a difficult and terrifying read, and if youre aware of some of the authors own history, it gets even realer. Sometimes, a cultural exchange or learning about different experiences will be easy. Other times, not so. Sometimes, I dont even have to look far from home for the toughest and realest stories. I recently read Gabi, A Girl in Pieces by Isabel Quintero and was totally blown away by how perfectly well the author captured what the life of a young Latin@ can be like. What it can be like to be a gay teen son or a pregnant teen daughter in a God-fearing Latino household. Or a mom who struggles every day not to fall apart in front anyone from shame or embarrassment, especially not in front of her kids. About a chubby girl who finds her feminism and her voice, and a creative outlet for it in poetry. This book would have helped so many friends through so much frustration when we were teenagers, but its over with now, and hey: Ive got the ability now to get it into as many hands as I can. There are so many people who say that books are just entertainment, and what matters is that the story is good, not the gender/race/background/orientation/culture of the author or main characters. But I reject that way of thinking. Books are a safe way to learn about different people or cultures. Theyre capable of validating your feelings or experiences or help you understand your friends better. And they can be a sturdy hurricane impact window keeping you safe on one side and some terrible things on the other. So yeah, some fools can keep pretending that these narratives arent important, but Ill be over here being a better human and talking up these books that teach me about people who arent just like me. Also In This Story Stream The Women in Science We Don’t Write About Terry Tempest Williams on Women and Books Feminist-Friendly Comic Books Lauren Beukes On Writers and Their Cats Fatima Mernissi, Morocco’s Feminist Icon Sonali Dev on Why She Writes The Heroines She Writes All Around the World: Women Writers from Every Continent 50 of the Best Heroines from Middle Grade Books Between Worlds: Finding Home in Fantasy How to Raise a Well-Read Woman View all international women's day posts-->

Saturday, May 23, 2020

War What Is It Good For - 1386 Words

Sean Younce Professor Pokas Sociology 101 24 Jun 2015 War: What is it Good for? The three major sociological perspectives have conflicting viewpoints about warfare. The three sociological perspectives provide different interpretations of war. The Structural Functionalists focus on how war unites different peoples as they must work together to survive, as well as how war in general protect the freedom of the masses. Conflict Theorists focus on how militarism runs the world, from creating war to create capital to eliminating population through war. Symbolic Interactionists prefer to focus on how symbols( ex. the flag) play such an important role in supporting a war. With these overviews in mind, one can see how conflict theory is†¦show more content†¦Regardless of your opinion on war, historical evidence dictates that war has resolved disputes between nations, wherein winner of the war wins the dispute. Even though most would say that war only ends disputes because the loser dies, it has technically performed this function. Secon d, war generates a sense of social bonding within the societies at war. When people are faced with a common enemy, they unite with a shared purpose and become a greater force than any one alone could ever be. This dynamic is called the external conflict/internal cohesion process (Markides Cohn, 1982). Finally, war throughout history, such as those in which ancient Rome raped and pillaged the surrounding lands and peoples, led to the development of the nation-state as a political institution. Over time, these other peoples forgot their heritage and conformed to the Roman way of life. As these nations grew in stature, the size of their population allowed more room for the advancement of science, medicine, and politics. Therefore, war indirectly contributed to advances Conflict Theory Conflict theory’s perspective on war is considerably less positive than that of functionalism. There are quite a few different views within conflict theory in regards to war, but three main views are prominent. The first view exhibits

Tuesday, May 12, 2020

User modes in VIM - Free Essay Example

Sample details Pages: 28 Words: 8392 Downloads: 3 Date added: 2017/06/26 Category Statistics Essay Did you like this 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.. Don’t waste time! Our writers will create an original "User modes in VIM" essay for you Create order 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

Wednesday, May 6, 2020

Variable Pay Plan Gain Sharing Free Essays

Employers are often faced with the challenge of looking for ways to boost productivity and profitability while at the same time, motivating employees to accomplish organizational goals. For many employers, variable pay plans have risen to meet this challenge. A variable pay plan ties pay increases to increased performance and productivity. We will write a custom essay sample on Variable Pay Plan: Gain Sharing or any similar topic only for you Order Now One of the more popular group variable pay plans is called gain sharing. Under gain sharing pay programs, both the employer and the employee benefit from increased productivity. Therefore, gain sharing has often been referred to as a win-win pay program since it is an incentive strategy that ties pay to productivity. Gain sharing is a type of incentive plan designed to increase productivity by linking pay directly to specific improvements in a company†s performance. Gain sharing is used primarily when quantitative levels of production are important measures of business success. Gains are shared with unit/department employees on a monthly, quarterly, semiannual or annual basis according to some predetermined formula calculated on the value of gains of production over labor and other costs. The plan lets employees reap some of the rewards of their efforts through teamwork and cooperation and by working smarter and harder. Gain sharing plans offer the following:  · Directly ties pay to some important measure of company performance  · Results in productivity improvements when installed  · Appropriate for all groups of employees  · Improves communications and teamwork among employees  · Increases employee awareness of â€Å"the big picture†  · Improves job satisfaction and employee relations  · Increases employee participation through involvement in the system Gain sharing pay programs have the following disadvantages:  · Time consuming to design, implement and administer  · Requires employee orientation, education and training  · Accurate and timely production and cost data must be available  · If not already in place, gain sharing requires a shift to participative management and employee involvement Once you decide to add a gain sharing plan to your company you must pick the type of plan you wish to implement into your company. The following is a description of different types of plans a company could implement. A Value Added Plan is the cost of materials and services is subtracted from sales to determine a value added figure. Employee costs are then compared to this figure to arrive at a value added index. This index is compared to value added for future periods to determine if there has been an improvement in productivity. To the extent that employee costs are less than would be the case by applying a value added index to a value added, there is a productivity gain to be shared. A major challenge with this type of plan is removing the effects of automation from productivity gains. The Rucker Plan, essentially, this is a value added plan that contains special adjustments to account for base wage and other price changes, capital expenditures, and other costs unrelated to employee productivity. The Scanlon Plan is one of the more familiar gain sharing plans. It involves calculating total payroll costs and dividing by sales plus finished inventory figures to determine a plan ratio. Employee shares of productivity gains are determined by improvements of this ratio. The Improshare plan tells that increased productivity is determined by looking at the number of working hours that are saved in producing a number of finished units in a given period of time as compared to a base period. Its proponents stress that this measure leads to less waste and better quality control since only finished products are used in measuring the gains. The next is the Par Plan. This plan goes beyond other gain sharing plans by rewarding any successful effort to improve productivity. It does not single out gains solely from a productivity improvement standpoint. A â€Å"par† figure is determined based on all manufacturing costs compared to sales. Any improvement in this ratio determines the gain to be shared. The Gallway Plan gives employee incentives. The incentives under this plan are based solely on reduction in labor costs. The labor value of each product is determined and becomes a basis for determining the gain in productivity that is shared with employees. The first step in designing a gain sharing program is to determine what is to be accomplished by instituting a gain sharing plan. Is the objective to improve productivity? To reduce costs? To maintain or increase market share? Is the objective to improve organizational communication, employee relations or to promote employee participation in the organization? Is the objective to replace a compensation structure that no longer reinforces organizational goals such as improved product quality or customer service? The next stage is to determine how employees will be grouped under the program. Will employees be grouped by geographic location, product or service line, organizational group, payroll category or other employee characteristics? However the group is defined, it is important that it be self-contained and able to function as a â€Å"team. † The third step in developing a gain sharing plan is to determine what measures of performance are necessary to meet the stated objectives of the gain sharing plan. Measurements may be financial, operational or a combination of financial and operational. The fourth step in developing a gain sharing plan is to design the key elements of the program. Key issues at this stage include how do you measure productivity measures and award bonuses, handling variations in performance, and allocating or sharing the gains. After the plan has been developed and administrative issues addressed, the next step is to implement the plan and get employees actively involved in a team approach to performance improvement. This step might be accomplished by using formal or informal suggestion systems, quality circles, training sessions or set managed work groups with regular meetings. The final step after the plan is implemented is to ensure that it stays current with the development of the organization. During this phase of the process, a clear statement of plan documents outlining conditions under which the plan may be suspended, terminated or modified should be developed. How to cite Variable Pay Plan: Gain Sharing, Essay examples

Saturday, May 2, 2020

Societys Problems and My Role In Helping It Essay Example For Students

Societys Problems and My Role In Helping It Essay Is helping solve the problems of society everyones job, or no ones job. Whatrole would you hope to play, based on your interests and developing skills, inthe solution of one or more specific problems?As the problems in society arise, it is the duty of every individual to ease theburden by helping to solve these problems. Too often, individuals pass off thatresponsibility with the hope that others will pick up the slack. The problem isthat too many shrug their responsibility leaving an insurmountable degree ofperils. It is everyones obligation to help solve the problems because everyone has astake in society. Not enough people see the whole picture when it comes tosocietys problems. If something hurts the society, it hurts the individual. Forexample, the problem of homelessness is not just the problem of those who arewithout residence. Their plight effects us all. Homelessness hurts the localbusinessman whose customers are frightened away by the homeless man living onthe corner. It hurts those who have to commute to work via public transportationand must deal with the panhandlers. It hurts those whose homes are burglarizedby the homeless man looking for money to feed his family. There is no isolatedproblem in society and each problem has a ripple effect that eventually hurtseveryone. Even if only for selfish reasons, every individual should help tosolve the problems of society. A parallel that I can draw to further illustratemy point is the team play of former NBA star Earvin Magic Johnson. When askedwhy he is such a team player, he responded that he was a very selfish man. Hewanted to win so much that he was willing to do whatever it took to succeed. I hope that in my later life I have every opportunity to help those who need it. I try to help out as much as I can now. Due to my commitments at school, I havelittle spare time, but I still attempt to help. During Thanksgiving I help outwith my schools Thanksgiving Food Drive. I also volunteer as a tutor for thosewho need help with their academics. On smaller scales, I always donate my loosechange to the various charity boxes that are strategically placed at thecounters of all the local stores and I always recycle my recyclables. At college,I look forward to the opportunity to further assist in improving society. Beyond college, I hope to eventually make a real difference in society. I havechosen business management and/or marketing as my career of choice, but I wouldeventually like to throw my hat into the ring of politics. My goal is to becomea successful businessman and set myself up comfortably. If I become well off,which I hope to, I will give back to the society that helped me reach that point. I will do so by donating both my time and money to various charitable services. I then hope to run for local office. My desire to be a politician is for onlyaltruistic reasons. I want to change many things about the way our government isrun and the way it handles the problems of society. If I run for office, it willnot be to gain financially or to make a name for myself. I want to make adifference, and I feel that through the medium of politics I could. I feel that the single most important institution in our nation is theeducational system. Without a strong educated population, the United States willnever return to its former economic prosperity and standing among the nations ofthe world. More important than pumping money into defense and the military, weshould be focusing our time, money and effort on educating the youth. I feelthat this starts by decreasing the class size at the grade school level. .u14ac468463e06bc1719c8d8e83dec7f6 , .u14ac468463e06bc1719c8d8e83dec7f6 .postImageUrl , .u14ac468463e06bc1719c8d8e83dec7f6 .centered-text-area { min-height: 80px; position: relative; } .u14ac468463e06bc1719c8d8e83dec7f6 , .u14ac468463e06bc1719c8d8e83dec7f6:hover , .u14ac468463e06bc1719c8d8e83dec7f6:visited , .u14ac468463e06bc1719c8d8e83dec7f6:active { border:0!important; } .u14ac468463e06bc1719c8d8e83dec7f6 .clearfix:after { content: ""; display: table; clear: both; } .u14ac468463e06bc1719c8d8e83dec7f6 { display: block; transition: background-color 250ms; webkit-transition: background-color 250ms; width: 100%; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #95A5A6; } .u14ac468463e06bc1719c8d8e83dec7f6:active , .u14ac468463e06bc1719c8d8e83dec7f6:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #2C3E50; } .u14ac468463e06bc1719c8d8e83dec7f6 .centered-text-area { width: 100%; position: relative ; } .u14ac468463e06bc1719c8d8e83dec7f6 .ctaText { border-bottom: 0 solid #fff; color: #2980B9; font-size: 16px; font-weight: bold; margin: 0; padding: 0; text-decoration: underline; } .u14ac468463e06bc1719c8d8e83dec7f6 .postTitle { color: #FFFFFF; font-size: 16px; font-weight: 600; margin: 0; padding: 0; width: 100%; } .u14ac468463e06bc1719c8d8e83dec7f6 .ctaButton { background-color: #7F8C8D!important; color: #2980B9; border: none; border-radius: 3px; box-shadow: none; font-size: 14px; font-weight: bold; line-height: 26px; moz-border-radius: 3px; text-align: center; text-decoration: none; text-shadow: none; width: 80px; min-height: 80px; background: url(https://artscolumbia.org/wp-content/plugins/intelly-related-posts/assets/images/simple-arrow.png)no-repeat; position: absolute; right: 0; top: 0; } .u14ac468463e06bc1719c8d8e83dec7f6:hover .ctaButton { background-color: #34495E!important; } .u14ac468463e06bc1719c8d8e83dec7f6 .centered-text { display: table; height: 80px; padding-left : 18px; top: 0; } .u14ac468463e06bc1719c8d8e83dec7f6 .u14ac468463e06bc1719c8d8e83dec7f6-content { display: table-cell; margin: 0; padding: 0; padding-right: 108px; position: relative; vertical-align: middle; width: 100%; } .u14ac468463e06bc1719c8d8e83dec7f6:after { content: ""; display: block; clear: both; } READ: Ncea Level 2 [Nz] No Ordinary Sun and to Sea, to the Mountain, to the River Analysis EssayChildren who are neglected at home need the assurance and support of theirteacher. The teacher cannot possibly do that for thirty-five students. A youngchilds mind is a blank slate and can be influenced very easily. It is veryimportant that the child is instilled with proper values and strong sense ofconfidence in himself. That is why the school has to get to the child before thelocal drug dealers can corrupt him. I also feel that more money needs to bespent on the educational growth of the child from kindergarten