A Personal Virtual Computer Recorder Oren Laadan

Total Page:16

File Type:pdf, Size:1020Kb

A Personal Virtual Computer Recorder Oren Laadan A Personal Virtual Computer Recorder Oren Laadan Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences COLUMBIA UNIVERSITY 2011 c 2011 Oren Laadan All Rights Reserved ABSTRACT A Personal Virtual Computer Recorder Oren Laadan Continuing advances in hardware technology have enabled the proliferation of faster, cheaper, and more capable personal computers. Users of all backgrounds rely on their computers to handle ever-expanding information, communication, and computation needs. As users spend more time interacting with their computers, it is becoming increasingly important to archive and later search the knowledge, ideas and information that they have viewed through their computers. However, existing state-of-the-art web and desktop search tools fail to provide a suitable solution, as they focus on static, accessible documents in isolation. Thus, finding the information one has viewed among the ever-increasing and chaotic sea of data available from a computer remains a challenge. This dissertation introduces DejaView, a personal virtual computer recorder that enhances personal computers with the ability to process display-centric content to help users with all the information they see through their computers. DejaView continuously records a user's session to provide a complete WYSIWYS (What You Search Is What You've Seen) record of a desktop computing experience, enabling users to playback, browse, search, and revive records, making it easier to retrieve and interact with information they have seen before. DejaView records visual output, checkpoints corresponding application and file system states, and captures onscreen text with contextual information to index the record. A user can then browse and search the record for any visual information that has been previously displayed on the desktop, and revive and interact with the desktop computing state corresponding to any point in the record. DejaView introduces new, transparent operating system, display and file system virtualization techniques and novel semantic display-centric information recording, and combines them to provide its functionality without any modifications to applications, window systems, or operating system kernels. Our results demonstrate that DejaView can provide continuous low-overhead recording without any user-noticeable performance degradation, and allows users to playback, browse, search, and time-travel back to records fast enough for interactive use. This dissertation also demonstrates how DejaView's execution virtualization and recording extend beyond the desktop recorder context. We introduce a coordinated, parallel checkpoint-restart mechanism for distributed applications that minimizes syn- chronization overhead and uniquely supports complete checkpoint and restart of net- work state in a transport protocol independent manner, for both reliable and unreli- able protocols. We introduce a scalable system that enables significant energy saving by migrating network state and applications off of idle hosts allowing the hosts to enter low-power suspend state, while preserving their network presence. Finally, we show how our techniques can be integrated into a commodity operating system, main- line Linux, thereby allowing the entire operating systems community to benefit from mature checkpoint-restart that is transparent, secure, reliable, efficient, and integral to the Linux kernel. Contents Contents ii List of Figures viii List of Tables xi List of Algorithms xiii 1 Introduction1 1.1 Display Recording . .6 1.2 Content Recording . .7 1.3 Execution Recording . 10 1.4 Contributions . 12 1.5 Organization of this Dissertation . 17 2 System Overview 19 2.1 Usage Model . 19 2.2 Example Scenarios . 23 2.2.1 Parking Ticket Proof . 23 i 2.2.2 Software Re-install . 24 2.2.3 Objects Not Indexable . 25 2.2.4 Searching for Generic Terms . 26 2.2.5 Sysadmin Troubleshooting . 26 2.3 Architecture Overview . 27 3 Display Recording and Search 32 3.1 Display Recording . 33 3.1.1 Record . 34 3.1.2 Playback . 36 3.2 Content Recording and Search . 38 3.2.1 Text Capture and Indexing . 39 3.2.2 Search with Database . 41 3.2.3 Search with Text-shots . 43 3.3 Summary . 45 4 Display-Centric Content Recording 47 4.1 Display-Centric Text Recording . 48 4.2 The Accessibility Framework . 50 4.3 Architecture . 56 4.3.1 Overview . 58 4.3.2 Mirror Tree . 60 4.3.3 Event Handler . 61 4.3.4 Output Modules . 65 4.3.5 Limitations . 66 ii 4.4 Evaluation . 67 4.4.1 Performance Overhead . 70 4.4.2 Single Application Text Coverage . 71 4.4.3 Multiple-Application Text Coverage . 73 4.4.4 Tree Characteristics . 74 4.5 Lessons Learned . 77 4.6 Summary . 79 5 Virtual Execution Environment 80 5.1 Operating System Virtualization . 82 5.2 Interposition Architecture . 86 5.3 Virtualization Challenges . 88 5.3.1 Race Conditions . 91 5.3.1.1 Process ID Races . 92 5.3.1.2 PID Initialization Races . 96 5.3.1.3 SysV IPC Races . 100 5.3.1.4 Pseudo Terminals Races . 106 5.3.2 File System Virtualization . 108 5.3.3 Pseudo File Systems . 108 5.4 Evaluation . 110 5.4.1 Micro-benchmarks . 111 5.4.2 Application Benchmarks . 116 5.5 Summary . 120 6 Live Execution Recording 121 iii 6.1 Application Checkpoint-Restart . 122 6.1.1 Virtualization Support . 124 6.1.2 Key Design Choices . 126 6.2 Record . 129 6.2.1 Consistent Checkpoints . 129 6.2.2 Optimize for Interactive Performance . 132 6.2.3 Checkpoint Policy . 135 6.3 Revive . 137 6.3.1 File System Restore . 139 6.3.2 Network Connectivity . 140 6.4 Quiescing Processes . 141 6.5 Process Forest . 144 6.5.1 DumpForest Algorithm . 146 6.5.1.1 Basic Algorithm . 147 6.5.1.2 Examples . 151 6.5.1.3 Linux Parent Inheritance . 152 6.5.2 MakeForest Algorithm . 154 6.6 Shared Resources . 156 6.6.1 Nested Shared Objects . 158 6.6.2 Compound Shared Objects . 159 6.6.3 Memory Sharing . 160 6.7 Evaluation . 161 6.8 Summary . 170 iv 7 Whole System Evaluation 172 7.1 System Overhead . 175 7.2 Access To Data . 181 7.3 Summary . 186 8 Distributed Checkpoint-Restart 187 8.1 Architecture Overview . 189 8.2 Distributed Checkpoint-Restart . 190 8.3 Network State Checkpoint-Restart . 198 8.4 Evaluation . 207 8.4.1 Virtualization Measurements . 209 8.4.2 Checkpoint-Restart Measurements . 209 8.5 Summary . 215 9 Desktop Power Management 216 9.1 Architecture Overview . 218 9.2 Application Containers . 221 9.3 Application Migration . 225 9.3.1 Checkpoint and Restart Overview . 228 9.3.2 Base Connection State . 231 9.3.3 Dynamic Connection State . 235 9.4 Evaluation . 238 9.5 Summary . 244 10 Checkpoint-Restart in Linux 245 10.1 Usage . 246 v 10.1.1 Userspace Tools . 249 10.1.2 System Calls . 251 10.2 Architecture . 252 10.2.1 Kernel vs. Userspace . 254 10.2.2 Checkpoint and Restart . 256 10.2.3 The Checkpoint Image . 260 10.2.4 Shared Resources . 262 10.2.5 Leak Detection . 263 10.2.6 Error Handling . 265 10.2.7 Security Considerations . 266 10.3 Kernel Internal API . 268 10.4 Experimental Results . ..
Recommended publications
  • Annual Report in This Report
    GNOME FOUNDATION 2018–2019 ANNUAL REPORT IN THIS REPORT 3 Letter from the GNOME Foundation 4 About GNOME 5 Releases 6 Accessibility 6 GNOME Moves to Discourse 7 GitLab Statistics and Activity 8 Hackfests CREDITS 9 Conferences Thank you to everyone involved in the making of this report! We appreciate the authors, editors, and organizers that helped highlight 10 Finances at a Glance all the great work GNOME accomplished in the 2018‑2019 fiscal year. Gaurav Agrawal, Matthias Clasen, Emmanuele Bassi, Molly de Blanc, 12 Outreach Sebastian Dröge, Caroline Henriksen, Juanjo Marin, Neil McGovern, Bartłomiej Piotrowski, Kristi Progri, Oliver Propst, Andrea Veri, 13 Friends of GNOME Britt Yazel, and Rosanna Yuen. 2 2019 was an exciting year for us! We increased the Foundation‘s staff with three new employees—a GTK+ core developer, a Program LETTER FROM Coordinator, and a Strategic Initiatives Manager—expanded our efforts with new projects, and continued making great soware. We had three wildly successful conferences, several hackfests, and a number of newcomer events geared towards helping new contributors get THE GNOME involved in GNOME. We sponsored three amazing Outreachy interns and mentored nine students through Google Summer of Code. There were numerous technical successes: updates to GTK, two new releases of the desktop environment, and numerous infrastructure improvements, including both hardware and soware upgrades. We introduced an Inclusion and Diversity team in order to make the FOUNDATION GNOME community a more welcoming place. We announced the GNOME Community Engagement Challenge. We had speakers and booths at conferences in Asia, Europe, North America, and South America.
    [Show full text]
  • Building a Scalable Index and a Web Search Engine for Music on the Internet Using Open Source Software
    Department of Information Science and Technology Building a Scalable Index and a Web Search Engine for Music on the Internet using Open Source software André Parreira Ricardo Thesis submitted in partial fulfillment of the requirements for the degree of Master in Computer Science and Business Management Advisor: Professor Carlos Serrão, Assistant Professor, ISCTE-IUL September, 2010 Acknowledgments I should say that I feel grateful for doing a thesis linked to music, an art which I love and esteem so much. Therefore, I would like to take a moment to thank all the persons who made my accomplishment possible and hence this is also part of their deed too. To my family, first for having instigated in me the curiosity to read, to know, to think and go further. And secondly for allowing me to continue my studies, providing the environment and the financial means to make it possible. To my classmate André Guerreiro, I would like to thank the invaluable brainstorming, the patience and the help through our college years. To my friend Isabel Silva, who gave me a precious help in the final revision of this document. Everyone in ADETTI-IUL for the time and the attention they gave me. Especially the people over Caixa Mágica, because I truly value the expertise transmitted, which was useful to my thesis and I am sure will also help me during my professional course. To my teacher and MSc. advisor, Professor Carlos Serrão, for embracing my will to master in this area and for being always available to help me when I needed some advice.
    [Show full text]
  • Guile-GNOME: Atk Version 2.16.2, Updated 9 December 2011
    Guile-GNOME: Atk version 2.16.2, updated 9 December 2011 Bill Haneman Marc Mulcahy Padraig O'Briain This manual is for (gnome atk) (version 2.16.2, updated 9 December 2011) Copyright 2001-2007 Bill Haneman, Marc Mulcahy, Padraig O'Briain Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation. i Short Contents 1 Overview :::::::::::::::::::::::::::::::::::::::::::: 1 2 AtkAction ::::::::::::::::::::::::::::::::::::::::::: 2 3 AtkComponent ::::::::::::::::::::::::::::::::::::::: 4 4 AtkDocument :::::::::::::::::::::::::::::::::::::::: 8 5 AtkEditableText ::::::::::::::::::::::::::::::::::::: 10 6 AtkGObjectAccessible :::::::::::::::::::::::::::::::: 12 7 AtkHyperlinkImpl :::::::::::::::::::::::::::::::::::: 13 8 AtkHyperlink ::::::::::::::::::::::::::::::::::::::: 14 9 AtkHypertext ::::::::::::::::::::::::::::::::::::::: 17 10 AtkImage::::::::::::::::::::::::::::::::::::::::::: 18 11 AtkNoOpObjectFactory ::::::::::::::::::::::::::::::: 20 12 AtkNoOpObject ::::::::::::::::::::::::::::::::::::: 21 13 AtkObjectFactory :::::::::::::::::::::::::::::::::::: 22 14 AtkObject :::::::::::::::::::::::::::::::::::::::::: 23 15 AtkRegistry ::::::::::::::::::::::::::::::::::::::::: 29 16 AtkRelationSet :::::::::::::::::::::::::::::::::::::: 31 17 AtkRelation::::::::::::::::::::::::::::::::::::::::: 33 18 AtkSelection :::::::::::::::::::::::::::::::::::::::: 35 19 AtkStateSet :::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • WIKI on ACCESSIBILITY Completion Report March 2010
    WIKI ON ACCESSIBILITY Completion report March 2010 By Nirmita Narasimhan Programme Manager Centre for Internet and Society Project Title: Wiki on “Accessibility, Disability and the Internet in India” Page | 1 REPORT Accessibility wiki: accessibility.cis-india.org The wiki project was envisaged and funded by the National Internet Exchange of India (www.nixi.in) and has been executed by the Centre for Internet and Society (www.cis-india.org), Bangalore. Project Start date: May 2009 End date: February 2010. Background India has a large percentage of disabled persons in its population— estimated to be over seven per cent as per the Census of 2001. Even this figure is believed to be a gross under representation of the total number of disabled persons residing in this large and diverse country. Taken in figures, this amounts to roughly 70-100 million persons with disabilities in the territory of India. Out of this number, a mere two per cent residing in urban areas have access to information and assistive technologies which enable them to function in society and enhance their performance. There are several reasons for this, one of them being that there is a deplorable lack of awareness which exists on the kinds of disabilities and about ways in which one can provide information and services to disabled persons. Parents, teachers, government authorities and society at large are all equally unaware about the options which exist in technology today to enable persons with disabilities to carry on independent and productive lives. Barring a few exceptions, India is still trapped in an era where a white cane and a Braille slate symbolises the future for blind people, while the world has progressed to newer forms of enabling technology such as screen readers, daisy players, the Kindle and so on.
    [Show full text]
  • A Game Engine for the Blind
    Bachelor in Computer Science and Engineering 2016/2017 Bachelor Thesis Designing User Experiences: a Game Engine for the Blind Álvaro Cáceres Muñoz Tutor/s: Teresa Onorati Thesis defense date: July 3rd, 2017 This work is subject to the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. Abstract Video games experience an ever-increasing interest by society since their incep- tion on the 70’s. This form of computer entertainment may let the player have a great time with family and friends, or it may as well provide immersion into a story full of details and emotional content. Prior to the end user playing a video game, a huge effort is performed in lots of disciplines: screenwriting, scenery design, graphical design, programming, opti- mization or marketing are but a few examples. This work is done by game studios, where teams of professionals from different backgrounds join forces in the inception of the video game. From the perspective of Human-Computer Interaction, which studies how people interact with computers to complete tasks [9], a game developer can be regarded as a user whose task is to create the logic of a video game using a computer. One of the main foundations of HCI1. is that an in-depth understanding of the user’s needs and preferences is vital for creating a usable piece of technology. This point is important as a single piece of technology (in this case, the set of tools used by a game developer) may – and should have been designed to – be used on the same team by users with different knowledge, abilities and capabilities.
    [Show full text]
  • Open Source Used in Tesla Series Switches 2.5.0.X 2.5.0.X
    Open Source Used In 250, 350, 350X, and 550X Series Switches 2.5.0.x Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. Text Part Number: 78EE117C99-190526882 Open Source Used In 250, 350, 350X, and 550X Series Switches 2.5.0.x 1 This document contains licenses and notices for open source software used in this product. With respect to the free/open source software listed in this document, if you have any questions or wish to receive a copy of any source code to which you may be entitled under the applicable free/open source license(s) (such as the GNU Lesser/General Public License), please contact us at [email protected]. In your requests please include the following reference number 78EE117C99-190526882 En ce qui a trait au logiciel gratuit ou à exploitation libre figurant dans ce document, si vous avez des questions ou souhaitez recevoir une copie du code source, auquel vous avez droit en vertu des licences gratuites ou d'exploitation libre applicables (telles que licences GNU Lesser/General Public), veuillez communiquer avec nous à l'adresse external- [email protected]. Dans vos demandes, veuillez inclure le numéro de référence 78EE117C99-190526882 Contents 1.1 Angular Bootstrap 0.12.0 1.1.1 Available under license 1.2 Angular UI Sortable 1.1.1 1.2.1 Available under license 1.3 angular-chart.js 0.7.2 1.3.1 Available under license 1.4 Angular-dashboard-frmework 0.8.0 1.4.1
    [Show full text]
  • Improved Methods for Mining Software Repositories to Detect Evolutionary Couplings
    IMPROVED METHODS FOR MINING SOFTWARE REPOSITORIES TO DETECT EVOLUTIONARY COUPLINGS A dissertation submitted to Kent State University in partial fulfillment of the requirements for the degree of Doctor of Philosophy by Abdulkareem Alali August, 2014 Dissertation written by Abdulkareem Alali B.S., Yarmouk University, USA, 2002 M.S., Kent State University, USA, 2008 Ph.D., Kent State University, USA, 2014 Approved by Dr. Jonathan I. Maletic Chair, Doctoral Dissertation Committee Dr. Feodor F. Dragan Members, Doctoral Dissertation Committee Dr. Hassan Peyravi Dr. Michael L. Collard Dr. Joseph Ortiz Dr. Declan Keane Accepted by Dr. Javed Khan Chair, Department of Computer Science Dr. James Blank Dean, College of Arts and Sciences ii TABLE OF CONTENTS TABLE OF CONTENTS ............................................................................................... III LIST OF FIGURES ..................................................................................................... VIII LIST OF TABLES ....................................................................................................... XIII ACKNOWLEDGEMENTS ..........................................................................................XX CHAPTER 1 INTRODUCTION ................................................................................... 22 1.1 Motivation and Problem .......................................................................................... 24 1.2 Research Overview ................................................................................................
    [Show full text]
  • NYC*BUG in Perspective
    Tens Years of NYC*BUG in Perspective versioning ● 10 years is actually December/January ● aimed at a broader audience than just people here ● start an UG? ● “organizational” angle THIS IS A DOT RELEASE my perspective ● I'm not the only one ● many other significant players ● my role exaggerated ● the “philosophical” one ● difficult talk: 10 years I posit that ● We're not the best thing since sliced bread ● We're just a user group But... ● Much significant impact, in NYC and beyond ● The community is better to have us ● Would be better if there were more like us I posit that ● We're not the best thing since sliced bread ● We're just a user group But... ● Much significant impact, in NYC and beyond ● The community is better to have us ● Would be better if there were more like us What Was Clear ● No to “Hobbyism” ● No to “Professionalism” ● No to “Sales” (Apple 2004 meeting) ● Neither a software project nor technical meritocracy ● Free, open, loose ● Needed LOTS of planning (mailing list stats) ● Viewed ourselves as part of a wider community, whether they liked it or not ● People + Technology = success For instance... http://mail-index.netbsd.org/regional-nyc/2004/01/13/0003.html Subject: Re: NYCBUG To: None <[email protected]> From: Michael Shalayeff <[email protected]> List: regional-nyc Date: 01/13/2004 12:51:01 Making, drinking tea and reading an opus magnum from Andrew Brown: > > http://lists.freebsd.org/pipermail/freebsd-advocacy/2004- January/000873.html > > i wonder if beer is involved...there's no mention of it in that posting.
    [Show full text]
  • The GNU General Public License (GPL) Does Govern All Other Use of the Material That Constitutes the Autoconf Macro
    Notice About this document The following copyright statements and licenses apply to software components that are distributed with various versions of the StorageGRID PreGRID Environment products. Your product does not necessarily use all the software components referred to below. Where required, source code is published at the following location: ftp://ftp.netapp.com/frm-ntap/opensource/ 215-10078_A0_ur001-Copyright 2015 NetApp, Inc. All rights reserved. 1 Notice Copyrights and licenses The following component is subject to the BSD 1.0 • Free BSD - 44_lite BSD 1.0 Copyright (c) 1982, 1986, 1990, 1991, 1993 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. • All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. • Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    [Show full text]
  • Pulse Connect Secure 8.2R5 Attributions
    Pulse Connect Secure 8.2R5 Attributions Revision Date 08/18/16 © 2016 by Pulse Secure, LLC. All rights reserved 1 Pulse Connect Secure 8.2R3 Attributions Pulse Secure, LLC 2700 Zanker Road, Suite 200 San Jose, CA 95134 http://www.pulsesecure.net © 2016 by Pulse Secure, LLC. All rights reserved Pulse Secure and the Pulse Secure logo are trademarks of Pulse Secure, LLC in the United States. All other trademarks, service marks, registered trademarks, or registered service marks are the property of their respective owners. Pulse Secure, LLC assumes no responsibility for any inaccuracies in this document. Pulse Secure, LLC reserves the right to change, modify, transfer, or otherwise revise this publication without notice. Pulse Policy Secure Enterprise Guest Access Solution Configuration Guide The information in this document is current as of the date on the title page. END USER LICENSE AGREEMENT The Pulse Secure product that is the subject of this technical documentation consists of (or is intended for use with) Pulse Secure software. Use of such software is subject to the terms and conditions of the End User License Agreement (“EULA”) posted at http://www.pulsesecure.net/support/eula. By downloading, installing or using such software, you agree to the terms and conditions of that EULA. © 2016 by Pulse Secure, LLC. All rights reserved 2 Pulse Connect Secure 8.2R5 Attributions Table of Contents This document contains information on the following products or licenses: Table of Contents .....................................................................................................................................
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • GNOME 3 Application Development Beginner's Guide
    GNOME 3 Application Development Beginner's Guide Step-by-step practical guide to get to grips with GNOME application development Mohammad Anwari BIRMINGHAM - MUMBAI GNOME 3 Application Development Beginner's Guide Copyright © 2013 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: February 2013 Production Reference: 1080213 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-84951-942-7 www.packtpub.com Cover Image by Duraid Fatouhi ([email protected]) Credits Author Project Coordinator Mohammad Anwari Abhishek Kori Reviewers Proofreader Dhi Aurrahman Mario Cecere Joaquim Rocha Indexer Acquisition Editor Tejal Soni Mary Jasmine Graphics Lead Technical Editor Aditi Gajjar Ankita Shashi Production Coordinator Technical Editors Aparna Bhagat Charmaine Pereira Cover Work Dominic Pereira Aparna Bhagat Copy Editors Laxmi Subramanian Aditya Nair Alfida Paiva Ruta Waghmare Insiya Morbiwala About the Author Mohammad Anwari is a software hacker from Indonesia with more than 13 years of experience in software development.
    [Show full text]