Diorama: a Portable Web-Based Platform for Testing Distributed

Total Page:16

File Type:pdf, Size:1020Kb

Diorama: a Portable Web-Based Platform for Testing Distributed MAURICE YAP MAURICE DR ANANDHA GOPALAN AUTHOR // AUTHOR COMPUTING INDIVIDUAL PROJECT INDIVIDUAL COMPUTING NG SUPERVISOR // ME A portable web-based platform for testing distributed algorithms Submitted in partial fulfilment of the requirements for the degree of Master of Engineering in Computing of Imperial College London Abstract The study of fault-tolerating distributed algorithms — designed to run on networked computers (nodes) which communicate with each other only by sending messages — is common on university computer science courses. Students of distributed algorithms oen implement such distributed algorithms in order to simulate them in a network of nodes in order to better understand them and to analyse their behaviour and performance. Many tools exist which allow students to do this, and there are also more involved other ways to test distributed algorithms such as implementing and running nodes from scratch in some programming language or setting up networks of Docker containers. However, such methods can be less than ideal since they may require users to use one particular language to implement algorithms, require root access to computers which may not be possible in a classroom or they may require users to spend lots of time learn to use other technologies which takes time away from learning about the algorithms themselves. We present the design of Diorama, a browser-based application which facilitates: the writing of distributed algorithms in the user’s choice of a range of available languages; the defining of a network topology which can include automatically-generated nodes; and the simulation of this distributed network. We create a proof-of-concept of Diorama to demonstrate its value and technical feasibility and publish a deployment tool which can be used to install and run Diorama from a cloud- or hypervisor-based virtual machine. iii Acknowledgements I would like to thank: • my supervisor for this project, Dr Anandha Gopalan, for his excellent advice, guid- ance and support over the past academic year; • my parents for enabling me to come to Imperial College London to study and to develop, and for their support during this time; • those working both on the front line and behind the scenes to continually improve the teaching, facilities, academic support and student welfare provision of the Department of Computing; • and finally, God, who is exclusively responsible for my academic gis and abilities. I also want to express gratitude to the vital financial support I received during my four years of study from the university’s Imperial Bursary scheme. This funding has been vital for me and many of my peers to ensure that we minimise our financial burden on our already-squeezed families. It will continue to be essential in making sure future students from more economically-deprived backgrounds are not discouraged, for financial reasons, from coming to this institution to both study and contribute to student life. The Imperial Bursary scheme is something of which this university should be immensely proud. v Contents 1 Introduction1 1.1 Objectives . 2 1.2 Contributions . 3 2 Distributed Algorithms5 2.1 Network topology . 5 3 Related Work9 3.1 A Simulator for Self-Stabilizing Distributed Algorithms ........... 9 3.2 JBotSim .................................... 13 3.3 DSLabs .................................... 16 3.4 Container orchestration: Docker ....................... 18 3.5 Network simulators: TETCOS NetSim .................... 20 3.6 Online integrated development environments (IDEs) . 22 3.6.1 Codeanywhere ............................ 23 3.6.2 Repl.it ................................. 23 3.7 Serverless/FaaS: AWS Lambda ........................ 24 3.8 Summary of related work . 27 4 Soware Design 29 4.1 Overview . 29 4.2 Goals of the soware package . 29 4.2.1 Use by an educator: Leroy’s user journey . 30 4.2.2 Use by a learner: Stacey’s user journey . 32 4.3 Technical representation of concepts in distributed algorithms . 34 4.4 Programming interface . 35 4.4.1 Node program API . 35 4.4.2 Network topology schema . 37 4.4.3 User events interface . 40 4.5 Web user interface . 43 4.5.1 Main elements . 43 4.5.2 Programs explorer . 44 4.5.3 Program editor . 44 4.5.4 Network topology editor . 46 vii 4.5.5 Advanced configuration . 47 4.5.6 Simulation . 47 4.6 Concluding remarks . 49 5 Proof-of-concept: Diorama 51 5.1 Aims for the proof-of-concept . 51 5.2 Overview of product . 51 5.2.1 Gallery . 52 5.3 Web service architecture . 59 5.4 Back-end: implementing programs, nodes and networks with Docker . 61 5.4.1 Node program images and containers . 61 5.4.2 Networking nodes . 65 5.5 Back-end: Main WebSocket server . 65 5.5.1 Using WebSocket messages . 66 5.5.2 Storing data persistently . 67 5.5.3 Interacting with Docker Engine ................... 68 5.5.4 Fetching node program code . 69 5.5.5 Handling Docker container messages: node logger server . 69 5.6 Front-end:React web application . 71 5.6.1 State management . 72 5.6.2 Page routing . 73 5.6.3 User event scheduling . 74 5.6.4 Use of selected third-party libraries . 76 5.7 Installing and running Diorama ....................... 81 6 Evaluation 83 6.1 Supported functionality . 83 6.2 Usability . 85 6.2.1 User testing . 86 6.2.2 Comparison to directly using Docker ................ 93 6.2.3 Conclusion . 94 6.3 Portability . 95 6.3.1 The web interface . 95 6.3.2 The server . 95 6.3.3 The installation tool . 96 6.3.4 Conclusion . 96 6.4 Extensibility . 97 6.4.1 Node program runtimes . 97 6.4.2 Network topology definition mechanisms . 98 6.4.3 Front end localisation . 99 7 Conclusion 101 7.1 Future work . 101 viii A Example network topology code in JSON 105 B Installation guide 107 B.1 Pre-made images . 107 B.2 For local VMs . 107 B.2.1 Pre-requisites . 107 B.2.2 Deploying . 108 C Guide for test users 109 D User testing node programs 113 E User testing notes 115 E.1 “Matt” . 115 E.2 “Nick" . 116 E.3 “Alan" . 117 E.4 “Gordon" . 117 E.5 “Amy" . 117 Bibliography 119 ix List of Figures 2.1 A pseudo-code representation of Eager Reliable Broadcast. 5 2.2 A network of two connected nodes. 6 2.3 A ring network . 6 2.4 A line network . 6 2.5 A fully-connected network . 6 2.6 A star network . 6 2.7 A tree network . 7 3.1 Screenshot from A Simulator for Self-Stabilizing Distributed Algorithms . 10 3.2 Add connection dialog in A Simulator for Self-Stabilizing Distributed Algorithms 11 3.3 Screenshot of JBotSim in action [16]. 13 3.4 Example code to run JBotSim.......................... 14 3.5 Creating links in JBotSim. ........................... 15 3.6 Screenshot of the function designer for AWS Lambda [6]. 25 3.7 Screenshot of the Amazon Cloudwatch logs for a Lambda function [7]. 25 3.8 Screenshot of AWS Lambda’s function code editor [6]. 26 4.1 State diagram for a simulated node. 34 4.2 The pseudo-code for our example node program. 36 4.3 The Python code for our example node program, using our interface. 37 4.4 An example network topology. 41 4.5 The YAML example network topology. 42 4.6 The timeline of node states generated by our example user events. 43 4.7 Wireframe of the main navigational and other fixed elements of the web application. 43 4.8 Wireframe of the programs viewer. 44 4.9 Wireframe of the program editor. 45 4.10 Wireframe of the network topology editor. 46 4.11 Wireframes of the graphical topology viewer and the connection parameters editor. 47 4.12 Wireframe of the advanced configuration page. 48 4.13 Wireframe of the node manager view within the simulation page and the user event scheduler modal. 49 4.14 Wireframe of the node output logs view within the simulation page. 50 x 5.1 The home page. 52 5.2 The documentation page. 53 5.3 The user interface preferences modal, where users can select their language and colour scheme. 53 5.4 The node programs viewer. 54 5.5 The node program editor, showing raw code input. 54 5.6 The network topology editor. 55 5.7 The network topology editor with the API Documentation accordion expanded 55 5.8 The network connection editor modal. 56 5.9 The simulation page, before a simulation has been started. 56 5.10 The node manager view on the simulation page. 57 5.11 The user events scheduler modal. ..
Recommended publications
  • Auswirkungen Der Benutzung Von Zentralen Und Dezentralen Versionsverwaltungssystemen in Open Source Projekten
    Auswirkungen der Benutzung von zentralen und dezentralen Versionsverwaltungssystemen In Open Source Projekten Masterarbeit an der Freien Universität Berlin für den Abschluss zum Master of Computer Science Jana von dem Berge 16. April 2009 Fachbereich Mathematik und Informatik Arbeitsgruppe Software Engineering Betreuer: Christopher Oezbek II Selbstständigkeitserklärung: Hiermit erkläre ich, dass ich diese Arbeit vollkommen selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt sowie Zitate kenntlich gemacht habe. Berlin, 16. April 2009 Jana von dem Berge III IV Inhalt 1 Einleitung............................................................................................................. 1 1.1 Open Source Projekte .................................................................................. 1 1.2 Aufgabenstellung.......................................................................................... 1 1.3 Versionsverwaltungssysteme....................................................................... 3 1.3.1 Einführung............................................................................................. 3 1.3.2 Zentrale Versionsverwaltungssysteme.................................................. 5 1.3.3 Dezentrale Versionsverwaltungssysteme ............................................. 8 2 Forschungsmethode.......................................................................................... 10 2.1 Grounded Theory ......................................................................................
    [Show full text]
  • An Overview of Platforms for Cloud Based Development G
    Fylaktopoulos et al. SpringerPlus (2016) 5:38 DOI 10.1186/s40064-016-1688-5 REVIEW Open Access An overview of platforms for cloud based development G. Fylaktopoulos1, G. Goumas2, M. Skolarikis1, A. Sotiropoulos3 and I. Maglogiannis4* Abstract This paper provides an overview of the state of the art technologies for software development in cloud environments. The surveyed systems cover the whole spectrum of cloud-based development including integrated programming environments, code repositories, software modeling, composition and documentation tools, and application man- agement and orchestration. In this work we evaluate the existing cloud development ecosystem based on a wide number of characteristics like applicability (e.g. programming and database technologies supported), productiv- ity enhancement (e.g. editor capabilities, debugging tools), support for collaboration (e.g. repository functionality, version control) and post-development application hosting and we compare the surveyed systems. The conducted survey proves that software engineering in the cloud era has made its initial steps showing potential to provide con- crete implementation and execution environments for cloud-based applications. However, a number of important challenges need to be addressed for this approach to be viable. These challenges are discussed in the article, while a conclusion is drawn that although several steps have been made, a compact and reliable solution does not yet exist. Keywords: Cloud computing, Integrated Development Environment (IDE), Code repositories, Software modeling, Orchestration tools Background application side, large families of applications including Within the past few years, cloud computing has emerged desktop, business, entertainment (Simmhan et al. 2010; as a dominant computing model in IT infrastructures, Schmidt 2012; Hobfeld et al.
    [Show full text]
  • Online Programming System for Code Analysis and Activity Tracking
    Paper ID #18916 Online Programming System for Code Analysis and Activity Tracking Tian Qiu, Purdue University Tian Qiu is a senior undergraduate in Computer Engineering and Mathematics-Computer Science. Mr. Mengshi Feng, Purdue University Mengshi Feng is a senior student at Purdue University. He is one of the team member in ACCESS project supervised by Yung-Hsiang Lu. Mr. Sitian Lu, Purdue University Sitian Lu is a junior studying Computer Engineering in Purdue University. He has been working on the online programming system (ACCESS) since later 2015. Sitian Lu has been studying in Purdue University for 3 years. He is also the vice president of Purdue Billiards Club since 2015. Mr. Zhuofan Li Mr. Yudi Wu Dr. Carla B. Zoltowski, Purdue University Carla B. Zoltowski is an assistant professor of engineering practice in the Schools of Electrical and Com- puter Engineering and (by courtesy) Engineering Education at Purdue University. She holds a B.S.E.E., M.S.E.E., and Ph.D. in Engineering Education, all from Purdue. Prior to this she was Co-Director of the EPICS Program at Purdue where she was responsible for developing curriculum and assessment tools and overseeing the research efforts within EPICS. Her academic and research interests include the profes- sional formation of engineers, diversity and inclusion in engineering, human-centered design, engineering ethics, leadership, service-learning, and accessibility and assistive-technology. Dr. Yung-Hsiang Lu, Purdue University Yung-Hsiang Lu is an associate professor in the School of Electrical and Computer Engineering and (by courtesy) the Department of Computer Science of Purdue University.
    [Show full text]
  • Cloud Based Integrated Development Environment for Android Devices
    Special Issue - 2015 International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 NCRTS-2015 Conference Proceedings Cloud based Integrated Development Environment for Android Devices Prof Manjunath R.1 Arunjith C.2 Head of Department Computer Science & Engineering Computer Science & Engineering City Engineering College City Engineering College Bangalore, India Bangalore, India Abstract—Integrated Development Environment is an integration of complete tool suites for software application which provides facilities to programmer for development and the development of language-specific software development such as code completing and fixing, editor services took a tremendous effort for the current source code editing and management, automated testing, generation of IDEs such as Eclipse and Visual Studio. etc. Software is rapidly moving from the desktop to the Web. The Web provides a generic user interface that This paper discusses the implementation of Web allows ubiquitous access, instant collaboration, integration Based Integrated Development Environment (IDE) for with other online services, and avoids installation and Android Devices with the different languages to code, configuration on desktop computers. Moving IDEs to the compile and run the code. The Web Based IDE will allow Web is not just a matter of porting desktop IDEs, a easy development and testing of applications. The users fundamental reconsideration of the IDE architecture is have the privilege to register on to the system write, save necessary in order to realize the full potential that the and manage programs online. After the language is combination of modern IDEs and the Web can offer. chosen by the user the request is forwarded to the This paper discusses implementation of Web based IDE respective compiler.
    [Show full text]
  • Web Based Interface Implementation For: Ruby, Perl, Python, VB & HTML
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 02 Issue: 06 | Sep-2015 www.irjet.net p-ISSN: 2395-0072 Web Based Interface Implementation for: Ruby, Perl, Python, VB & HTML. Poreddy Jayaraju, Vijay Prakash 1. Master of engineering, computer science, Sri Vaishnav Instt. of Tech .&science Indore. RGPV University, Bhopal, Madhya Pradesh, India. 2. Asst professor, computer science, Sri Vaishnav Instt. of Tech .&science Indore. RGPV University, Bhopal, Madhya Pradesh, India. ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract web based interface is an application and the introduction of HTML5, there is now even a which provides facilities to programmer for software small but growing collection of browser-based code development such as code completing and fixing, editors. Fully fledged integrated development source code editing and management, automated environments (IDEs) are still lagging behind in this pull testing, etc. Software is rapidly moving from the towards the Web. Modern, desktop-based IDEs integrate desktop to the Web. The Web provides a generic user a wide range of software engineering tools, and provide interface that allows ubiquitous access, instant a platform for writing, maintaining, testing, building, collaboration, integration with other online services, running, debugging, and deploying software. They and avoids installation and configuration on desktop increase developer productivity by incorporating many computers. Moving IDEs to the Web is not just a different kinds of editor services specific to the syntax matter of porting desktop IDEs, a fundamental and semantics of a language. These services assist reconsideration of the IDE architecture is necessary in developers in understanding and navigating through the order to realize the full potential that the combination code, they direct developers to inconsistent or of modern IDEs and the Web can offer.
    [Show full text]
  • Router Keygen Git
    Router keygen git Contact RouterKeygen. Feel free to email us to provide some feedback and give us suggestions! exobel@ · Facebook · Twitter · Github. Copyright. routerkeygenAndroid - Router Keygen generate default WPA/WEP keys for several routers. More than 25 million people use GitHub to discover, fork, and contribute to over 69 million Router Keygen generate default WPA/WEP keys for several routers. Qt Port for Linux, Mac OSX and Windows. Contribute to routerkeygenPC development by creating an account on GitHub. Router Keygen generate default WPA/WEP keys for the following router: Thomson based routers (this includes Thomson, SpeedTouch, Orange, Infinitum, BBox. UPC router default WPA2 key generator. Contribute to upcKeygen development by creating an account on GitHub. #NetHunter Terminal Application This application allows to open up one of several kinds of terminals - a chrooted Kali terminal, an Android. Closed. poutrosgit opened this Issue on Nov 28, · 2 comments Perhaps you could integrate router keygen () into csploit? App Information Router Keygen. App Name. Router Keygen. Package Name. keygen. Updated. September 12, File Size. My router keygen github. Fiberglass crack inspection. Motion Download. ?id=keygen&hl=en Router Keygen APK Download - Android Tools Apps. Sep 12, Router Keygen is a tool with which you can decipher Thomson passwords and WiFi I am not able to clone or push to a git repository at Bitbucket in Eclipse: It's. Gogs (Go Git Service) is a painless self-hosted Git service written in Go. Groups; Android Google Code will act as a mirror of Github from now on. Router Keygen generate default WPA/WEP keys for the following router: Thomson.
    [Show full text]
  • 0000000000000000000000000
    Why use version control? Setting up CVS Saves all previous versions of all files so that Create the repository: you can undo (buggy) edits. % mkdir ~/cvsroot % [set permissions for ~/cvsroot] % setenv CVSROOT ~/cvsroot Logs changes to files so you can trace how % cvs init your sources have evolved over time. Set the CVSROOT environment variable in Mediates conflicting changes made by your .cshrc file. several different users---helps keep consistency. Repository Creating a Project Project 1 Project 2 Project 3 Create a project from existing files: % cd base64 % cvs import -m “base64” base64 carlk start Checkout the new project and delete the old files. % cvs checkout base64 Working copies Development Process with CVS Dealing with Conflicts If another user has committed changes to Get working copy Get any changes cvs checkout cvs update lines you have edited, CVS will report a conflict. Your version Edit files decode (infile, stdout); <<<<<<< decode64.c if( fclose (infile) ) return 0; ======= cvs commit if( fclose (infile) ) printf(" couldn't close file."); >>>>>>> 1.5 no Repository version Conflicts? Manually edit to remove the conflict. yes cvs update Edits on different lines are automatically Most of the merged. Resolve time you stay conflicts in shaded loop. 1 Frequently Used Commands Keywords Get the latest revisions of files with: Useful to put dynamic information in source file. % cvs update When you get a new revision, keywords are replaced with information about the file. Write changes back to repository with: % cvs commit -m“log msg” Keyword Replaced with $Author$ Username who checked in this revision. If you omit –m the editor given in the EDITOR $Date$ Date the this revision was checked in.
    [Show full text]
  • Technical Report
    Eric-Hg Technical Report S-PM 140524 Mercurial Version Control of Eric Projects Technical Report – 1 – Eric-Hg Technical Report Copyright Page S-PM 140400 No commercial uses, No modifications allowed; Jurisdiction International, Format Text This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. Current edition PDF file, Eric_Deliver site URL: http://www.box.net/shared/k64yenrpey under the “Creative Commons License” Disclaimer The information in this document is subject to change without notice. The author and publisher have made their best efforts about the contents of this book, nevertheless the author and the publisher make no representation or warranties of any kind with regard to the completeness or accuracy of the contents herein and accept no liability of any kind including but not limited to performance, merchantability, fitness for any particular purpose, or any loss or damages of any kind caused or alleged to be caused directly or indirectly from this book. Brand Names Brand names such as Linux, Windows, Python are assumed to be universally known, and are here used in full respect of their respective owners. Planned edition On paper, under traditional copyright Published by [not yet—just appointed] Town & Country Reprographics, Inc. 230 N Main St Concord, NH 03301 (U.S.A.) All rights reserved No part of this book may be reproduced, if not for personal use, in any form or by any means, such as: graphic, electronic, or mechanical, including photocopying, recording, videotaping, or information storage and retrieval systems, without written permission of the publisher.
    [Show full text]
  • Linux Online Virtual Environments in Teaching Operating Systems
    Linux Online Virtual Environments in Teaching Operating Systems Olena Holovnia[0000-0003-0095-7585] Zhytomyr Polytechnic State University, 103, Chudnivska str., Zhytomyr, 10005, Ukraine [email protected] Abstract. The article provides an overview of Linux ready-made online environments based on various virtualization technologies. Linux ready-made online virtual environments are systematized, the advantages and disadvantages of considering groups of online virtual environments are listed. The work also gives the comparison of standalone online Unix/Linux terminals in terms of their possible use for a course in operating systems. The author analyzes the experience of teaching a Linux operating system to students of different specializations, and in particular, discusses the virtualization tools used, including Linux online environments (Amazon EC2, Cloud 9, a virtual machine for NDG Linux Essentials course). The study states the need for developing an individually designed system to provide Linux online virtual environments and elaborates the requirements to this system. The work also discusses potential challenges which the developers of Linux online virtual environments for teaching operating systems may face, including the problem of finding a balance between availability and stability of virtual environments on the one hand and the realism of students’ learning experience on the other hand. Keywords: virtualization, Linux, operating systems. 1 Introduction A course in operating systems (OS) usually includes practical assignments on Unix- like operating systems (particularly, Linux). However, at the same time, university lab computers, students’ laptops and home desktop computers mostly come with Windows installation. That is one important reason why different virtualization technologies are often used for a course in operating systems.
    [Show full text]
  • Tortoisecvs User's Guide Version 1.8.0
    TortoiseCVS User's Guide Version 1.8.0 Ben Campbell Martin Crawford Hartmut Honisch Francis Irving Torsten Martinsen Ian Dees Copyright © 2001 - 2004 TortoiseCVS Table of Contents 1. Getting Started What is CVS? What is TortoiseCVS? Where to Begin? 2. Basic Usage of TortoiseCVS Sandboxes Checking out a Module Windows Explorer and TortoiseCVS Total Commander and TortoiseCVS Updating your Sandbox Committing your Changes to the Repository Resolving Conflicts Adding Files and Directories to the Repository 3. Advanced Usage of TortoiseCVS Creating a New Repository or Module Watch, Edit and Unedit Tagging and Labeling Reverting to an Older Version of a File Branching And Merging Creating a Branch Selecting a Branch to Work On Merging from a Branch Going Back to the Head Branch Binary and Unicode Detection File Revision History History Dialog Revision Graph Dialog Web Log Making a Patch File 4. Customizing TortoiseCVS Overlay Icons Selecting a Different Set of Overlay Icons Changing how the Overlay Icons Work 5. Command Reference for TortoiseCVS Installing TortoiseCVS Obtaining a Working Copy: CVS Checkout... Getting Other People's Changes: CVS Update CVS Update Special... Making Your Changes Available to Others: CVS Commit... Adding New Files: CVS Add and CVS Add Contents... Discarding Obsolete Files: CVS Remove Finding Out What Has Changed: CVS Diff... Making a Snapshot: CVS Tag... Lines of Development: CVS Branch... CVS Merge... CVS Make New Module Watching And Locking Finding Out Who to Blame: CVS Annotate Showing More Information: CVS Explorer Columns Keyboard Shortcuts How Web Log Autodetects the Server URL 6. Dialog Reference for TortoiseCVS Add Dialog Checkout Dialog Update Special Dialog Commit Dialog Branch Dialog Make New Module Dialog Progress Dialog Tag Dialog Preferences Dialog Merge Dialog History Dialog Revision Graph Dialog About Dialog 7.
    [Show full text]
  • Online Code Compilation Using Cloud Computing
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 03 Issue: 05 | May-2016 www.irjet.net p-ISSN: 2395-0072 Online Code Compilation using Cloud Computing Jasmeet Chhabra1, Shubham Bhatia2, Vaibhav Kamal Nigam3, Rashik Bhasin4 1Student, Computer Science and Eng., JIIT University, Noida, U.P., India 2Student, Information Technology, JIIT University, Noida, U.P., India 3Student, Information Technology, JIIT University, Noida, U.P., India 4Student, Computer Science and Eng., JIIT University, Noida, U.P., India ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract - Computer Program that Software Developers use access their respective codes. In case of scarce need of a to create, debug, maintain, or otherwise support other PC editing of code is impossible. Thus, Online Code programs and applications are Programming Tools, Which Editor was proposed to solve this problem. It helps if produces accurate, meticulous and swift results can lead programmers to write or modify their source code at any to Good Quality Error Free Code. This paper proposed the place and any time they want. [4] The online text editor Online Code Editor that was created for Beginners, was built and run on Private cloud computing based on Programmers Designers or Developers who want to code web-based application. Open source software called programs On the Go without use of a Dedicated Software Ace was used to highlight the text. Program can be Installed having Full Portability and Transferability. It saved and complied via web browser and the code will be based on web application running on the Private cloud done at server-side. Then, the output of the compilation is computing.
    [Show full text]
  • When Developers Build Software, They're Able to Keep Track of All The
    < Day Day Up > Practical Perforce By Laura Wingerd ............................................... Publisher: O'Reilly Pub Date: November 2005 Print ISBN-10: 0-596-10185-6 Print ISBN-13: 978-0-59-610185-5 Pages: 358 Table of Contents | Index When developers build software, they're able to keep track of all the different versions and all the components they use with software configuration management (SCM) systems. One of the more popular SCM products is Perforce. Authored by Perforce's own VP of product technology, Practical Perforce is the ideal complement to the existing product manual, focusing less on the 'how" and more on the "why" and "when." The book is not only a helpful introduction to Perforce, it's an enlightening resource for those already familiar with this versatile SCM product. Whether you're a programmer, product manager, or build engineer, you stand to benefit from the many insider tips and ideas presented in this convenient guide. Practical Perforce is divided into two main parts. Part I offers a whirlwind technical tour, complete with careful descriptions of basic and advanced Perforce commands designed to give you a baseline knowledge. Part II describes the big picture-using Perforce in a collaborative software development. It outlines recommended best practices and quickly shows how to implement them with the Perforce operations introduced in Part I. Throughout the book, you'll learn how to maximize Perforce so it completes tasks like these in the most efficient manner possible: Keep track of changes as you conduct concurrent parallel work on files Log activity Generate reports on who did what when Compare, merge and branch files Store files and file configurations Restore lost bug fixes Recognizing the pitfalls and practices of an SCM system like Perforce is absolutely essential to producing good software.
    [Show full text]