Developing an Inventory Management System for Second Life
|
|
|
- Gabriel Cannon
- 10 years ago
- Views:
Transcription
1 Developing an Inventory Management System for Second Life Abstract Anthony Rosequist Workflow For the progress report a month ago, I set the goal to have a basic, functional inventory management system using the RFID system in Second Life. I wanted to be able to keep track of various inventory levels at various locations throughout the hospital, and I also wanted to be able to request the inventory of a particular item at a particular location ( how many blankets are at depot #1? ) and receive an accurate response. I am pleased that I was able to accomplish these goals while adding an extra feature: the ability to perform a much more general query (with a particular item and a particular quantity, like I need 5 blankets ) that responds with the depots you should visit to most efficiently gather your required items. 1. Problem The workflow team as a whole is focused on providing the most effective way to simulate human interaction in the Second Life hospital. The focus has been on nurse and patient bots, where a patient would make a request that should be fulfilled by the nurse. We were given a list of various workflows, with the goal of implementing several of them into Second Life bots. This involved various subproblems. One team worked on using LSL to code robots, while another experimented with the OpenMetaverse libraries and C# to see how much functionality they would provide. There were also individuals who developed languages (in Lisp and Prolog) to represent workflows in a more abstract construct. As for me, my focus was on using the already-existent RFID system in Second Life. I was going to build an inventory management system. The idea is that hospitals do not have one giant storage room to hold all of the supplies that they would ever need. Instead, there are multiple inventory depots scattered across the hospital. When a nurse needs to get some objects, it would be inefficient to walk to the furthest depot when a nearby one might have all of the objects she needs. To help solve this problem, a centralized inventory management system could be developed. It would keep track of all of the item inventories at all of the depots across the hospital. When a nurse needs an object, it could make a recommendation on the best depot(s) to visit. 2. Objective The objective of the workflow team was to implement several cohesive workflow procedures in Second Life, with the ultimate goal being a designed framework for workflow development on the Second Life island.
2 The objective of my subprobject was to make an easy-to-use inventory management system, with clearly specified procedure calls. The long-term goal is to have the bots use this to carry out their goals more efficiently. 3. Related Work The only related work I directly used was the RFID system that exists on the Second Life island. It contains an RFID Scanner and an RFID Tag. Although I experienced some problems during the semester with the objects not working correctly, they are stable overall and extremely effective. 4. Architecture 4.1 Design The overall design of the project was: Daniel and Evan worked on the Second Life object bots, primarily using the bot language developed by Nick Farrer. They were able to implement several workflows that work very well. For the avatar team, Taylor and Shawn focused on getting the OpenMetaverse C# code working to control their avatar bots. They have successfully gotten control of their avatars and can do many basic movements and other commands (such as animations). Clinton has created a GUI that allows the user to control the avatar bots from outside of the Second Life interface. This gives you a chance to decide exactly what is needed by your C# program without having to do trial and error and constant recompiling. May and Ralph have completed workflow translations into Prolog and Lisp, respectively. This involves creating the proper semantics for specifying workflows as well as actually converting the workflows from English. In the future, these will be used to control the object and avatar bots without having to worry about the underlying LSL and C# code. The design of my subproject was: A major decision was whether the inventory manager should reside internally (as a Second Life object) or externally (on a server). I chose to do it externally, for a few reasons. The primary reason was speed. Although an HTTP request must be made for every query, it is still much faster than LSL code. Since the algorithm requires some reasonably intense calculations, the difference between the two is substantial. Further, there are many limitations of LSL that would make it much more difficult (and errorprone) to implement the algorithm in it than a server-side language. Early on, I learned the difficulty of doing relatively simple things (like 2D arrays) in LSL, and decided against using it as the primary language. In Second Life, every inventory depot has a script to communicate with the server. Whenever its inventory changes (items are added or removed), it sends an update command to the server. There is also an object to make queries to the server. When the owner says something to the query object, it sends either a query or count command to the server, and tells the result to the owner (further detail on those commands are
3 below). Since the object must always be within listening range of the owner, it is recommended that the owner attaches the object somewhere to their screen (you can always make it transparent, so it seems like nothing is there). On the server side, a PHP script resides on my Turing account to intercept the commands from Second Life. However, the PHP script does not actually process the commands. Instead, it simply passes the instructions to a Java application, which does the actual work. I did this because I could implement the algorithm much faster (with fewer errors), and also because Java has several functions already built-in that I would have to recreate in PHP. Furthermore, the compiled Java code is probably significantly faster than the same algorithm in interpreted PHP code. The PHP script only reads one variable ( args ), from either GET or POST, which simply includes the arguments to pass to the Java application. Then, whatever result Java prints to stdout is sent back to the LSL script. The possible argument structures for the Java application are: 1. update depotname item,item,item,item,item x.xx, y.yy, z.zz A) This will update the server's inventory of a items at a particular depot. B) The depot's name is the first argument. The form is entirely irrelevant, as long as the same depot uses the same name for all server updates. Depots don't need to be created or initialized before sending updates if the server gets a request for a depot that doesn't yet exist, it will automatically create one. C) A comma-delimited (no spaces) list of items follows. If a depot held 2 blankets and 1 wheelchair, this list would be blanket,blanket,wheelchair. This format was chosen because it integrated well with the current RFID scanner code. The order of items is irrelevant. D) Finally, the depot's physical coordinates are entered. This includes three floating point numbers, where the first two are followed by a comma and a space. If the depot's location changes, it only needs to send an update command and the server will automatically alter the location. The location can be determined by llgetpos(), which returns a vector. A vector's string representation is <x.xx, y.yy, z.zz>. The only change that needs to be made is stripping the < and > from it (it interferes with the PHP portion). 2. count depotname item A) This will return the number of items a particular depot holds of a particular object. It is relatively straightforward. B) The depot's name is the first argument. If the depot doesn't exist, it will return zero. C) The item's name is the second argument. 3. query quantity item position
4 4.2 Testing A) This is the main user command. You pass a particular quantity of a particular item, and it will calculate the depots that you need to go to in order to minimize distance traveled, given your current location. B) The quantity is an integer representing the number of items you need. C) The item is a string of the item that you need. D) The position is your current location, determined by llgetpos(), with the < and > characters stripped (just like with the update command). E) This command returns a user-friendly Visit depots x, y, and z, where x, y, and z are the depots the user should visit. After writing the Java code, I ran multiple tests to ensure that it performed as expected. Then, I created the PHP script to pass the arguments to the Java application and print the stdout result. Next, I created simple Second Life objects to interact with the server script. Finally, I incorporated these LSL functions into the RFID Tag and RFID Scanner objects. I ran multiple tests under different conditions to ensure that it gave me reasonable results. 5. Results The testing proved successful. I placed RFID Scanners are three locations in the hospital, and then I placed various quantities of blankets and food trays in each depot. I ran various tests, moving items in and out of depots, flying to different areas, and requesting different quantities of different types of objects. In each case, it gave me predictable, reasonable results. I did some very limited error checking, such as moving directly into a scanner, requesting too many objects (more than the total that exist), etc. All of these seemed to work correctly, although the checks were not rigorous by any means. 6. Conclusions 6.1 Summary Overall, I believe that the project was a success. There are certainly vast amounts of improvements that can be made, but a foundation has been laid. I think that externalizing the processing was a good decision, at least in the short-term, because it allowed for faster, simpler, and more accurate code than I could produce using LSL. It also allows for a more structured and flexible code base than LSL does. 6.2 Impact As the bots (both LSL and avatar) become more advanced and plentiful, it is necessary to know where they need to go in a more abstract sense. Instead of go to waypoint x, the bot must say go to the location where 5 blankets are. In order to do that, an effective inventory management system is required.
5 6.3 Future Work Incorporating the functionality into the bots (either the LSL bots or C# avatar bots). The next big step would be to use this system for bots to determine where they should go to gather what they need. The ability to query multiple items at once. Ex) I need 2 blankets and 3 wheelchairs. Currently, distance is calculated between two points by simple Euclidean geometry. However, this is significantly different from the real world, where a nurse would have to worry about going around walls in order to get to a location. A method to determine the real distance would greatly enhance the practicality of the query function. The ability to reserve an item for you after requesting it. After saying I need 2 blankets, the inventory manager determines which depots you should go to, and automatically subtracts 2 blankets from their inventory, so that you are guaranteed that they will be there for you when you arrive. This is important when you allow bots to query the inventory management system, since they will assume that the items are available at the requested depots. Avoiding concurrency errors. The current application stores the list of depots (and their inventory) in an external file through serialization. Therefore, if two depots attempt to update their inventory simultaneously, one of them will fail. Since the depots send their entire inventory with every update, the depot that was ignored simply needs to re-try the request. However, the current structure does not allow detection of failures. Some method that would allow for concurrent updates would be beneficial. Adding a delete depot function. This would rarely occur in real situations, but it is still something that needs to be added. If a depot is simply deleted, all of its inventory is still saved by the inventory manager. This means that it will be considered when performing queries. Adding a method to delete a depot would be extremely simple, but it would be great if the Second Life object automatically send a delete request when the object was deleted (I'm not sure if this is possible). Optimizing the algorithm, either theoretically or in implementation. The structure was designed to ensure that the algorithm would work effectively. The combination of LSL>>PHP>>Java>>PHP>>LSL is probably extremely inefficient, and an attempt could be made to increase the performance. However, this does not seem like an urgent task, since we will be dealing with relatively small numbers of depots. A specific place to optimize the algorithm (asymptotically) would be to change the calculateminimumdistance method (the traveling salesman problem). Currently, it just calculates the distance of all possible permutations, which runs in O(n!) time. Dynamic solutions exist in O(n 2 2 n ), and non-exact solutions (like genetic algorithms) can run in even less time. Optimizing this method would help the program become more scalable. Currently, when queried, the application returns a list of depots to visit, in an irrelevant order. An extra feature (which would be indispensable for bots using the code) would be to output the depots in the order which the nurse should travel to minimize the total distance. This would be very easy to do, since the algorithm calculates this already. However, a few small structural changes would need to be made.
6 Appendix A query algorithm Here is a simplified, non-rigorous algorithm that was used for implementing the query functionality in the final application. A[ x][ y]=the minimum distance it takes to find y objects in the first x depots. V [ x][ y]=the list of depots to visit to achieve the minimum distance it take to find y objects in the first x depots. C [ x]=the count of the item in depot x. (given) { x i=0 C [i] y: A[ x][ y]= A[ x 1][ y] minimum distance for ( V [ x 1][ y C [ x]] depot x ): A[ x 1][ y] else: minimum distance for (V [ x 1][ y C [ x]] depot x ) V [ x][ y]={ x i=0 C [i] y: [ ] A[ x 1][ y] minimum distance for ( V [ x 1][ y C [ x]] depot x ): V [ x 1][ y] else : (V[x-1][y-C[x]] depot x ) It is important to note that this algorithm requires the use of a method to find the minimum distance between points in a list, ie the traveling salesman problem. Unfortunately, I could not find a way to restructure the algorithm to avoid this, so I simply implemented a bruteforce method to find the solution. Appendix B LSL functions The HTTPCommunicator.pdf file contains the source code for the LSL functions that send user requests to the server ( count and query ). It parses the user's speech, send the appropriate request, and tells the owner the response it receives. The RFIDScanner.pdf file contains the LSL code that updates the depot's inventory count when it changes in Second Life ( update ). Appendix C PHP script The DepotManager.php.pdf file contains the PHP source code. It is extremely simple, since it only passes the arguments onto the Java application, and prints the stdout result. Appendix D Java source code The Depot.pdf, DepotManager.pdf, and Point.pdf files contain the Java code for the Inventory Depot Manager application. It contains three classes: Point (to represent 3D coordinates), Depot (to represent a depot with a name, inventory, and location), and DepotManager (which holds all of the main methods to execute the program).
7 Comments What did you learn? I knew nothing about Second Life before taking this class, so I had to learn a lot about using it, from a user and developer point of view. LSL is the first event-driven language I have had to use, so changing paradigms took a while to get used to. What did you like about the class? I liked that the class was project-based. Having projects that you can be excited about certainly makes the class much better. I also enjoyed learning about some of the different programming language paradigms. What didn t you like about the class? While I like the projects, I slightly wish that we would have gone over just a little more of the programming language theory. Also, while the Second Life projects did prove to be educational, there was a very steep learning curve for those of us who have never used it before. Learning curves aren't a bad thing, but it did hamper a little bit of learning about languages and project progress, since it took a couple of months to get everything understood (at the same time, some of the learning curve was getting used to LSL, which is certainly relevant to the course).
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
Commander. The World's Leading Software for Label, Barcode, RFID & Card Printing
The World's Leading Software for Label, Barcode, RFID & Card Printing Commander Middleware for Automatically Printing in Response to User-Defined Events Contents Overview of How Commander Works 4 Triggers
Semester Thesis Traffic Monitoring in Sensor Networks
Semester Thesis Traffic Monitoring in Sensor Networks Raphael Schmid Departments of Computer Science and Information Technology and Electrical Engineering, ETH Zurich Summer Term 2006 Supervisors: Nicolas
THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY
THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY As the constantly growing demands of businesses and organizations operating in a global economy cause an increased
7 Why Use Perl for CGI?
7 Why Use Perl for CGI? Perl is the de facto standard for CGI programming for a number of reasons, but perhaps the most important are: Socket Support: Perl makes it easy to create programs that interface
Efficiency of Web Based SAX XML Distributed Processing
Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences
MAGENTO HOSTING Progressive Server Performance Improvements
MAGENTO HOSTING Progressive Server Performance Improvements Simple Helix, LLC 4092 Memorial Parkway Ste 202 Huntsville, AL 35802 [email protected] 1.866.963.0424 www.simplehelix.com 2 Table of Contents
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
1001ICT Introduction To Programming Lecture Notes
1001ICT Introduction To Programming Lecture Notes School of Information and Communication Technology Griffith University Semester 2, 2015 1 3 A First MaSH Program In this section we will describe a very
BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER
BarTender Integration Methods Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER Contents Introduction 3 Integrating with External Data 4 Importing Data
Creating While Loops with Microsoft SharePoint Designer Workflows Using Stateful Workflows
Creating While Loops with Microsoft SharePoint Designer Workflows Using Stateful Workflows Published by Nick Grattan Consultancy Limited 2009. All rights reserved. Version 1.00. Nick Grattan Consultancy
Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we
A REST API for Arduino & the CC3000 WiFi Chip
A REST API for Arduino & the CC3000 WiFi Chip Created by Marc-Olivier Schwartz Last updated on 2014-04-22 03:01:12 PM EDT Guide Contents Guide Contents Overview Hardware configuration Installing the library
The Taxman Game. Robert K. Moniot September 5, 2003
The Taxman Game Robert K. Moniot September 5, 2003 1 Introduction Want to know how to beat the taxman? Legally, that is? Read on, and we will explore this cute little mathematical game. The taxman game
Databases in Microsoft Access David M. Marcovitz, Ph.D.
Databases in Microsoft Access David M. Marcovitz, Ph.D. Introduction Schools have been using integrated programs, such as Microsoft Works and Claris/AppleWorks, for many years to fulfill word processing,
PGR Computing Programming Skills
PGR Computing Programming Skills Dr. I. Hawke 2008 1 Introduction The purpose of computing is to do something faster, more efficiently and more reliably than you could as a human do it. One obvious point
Satisfying business needs while maintaining the
Component-Based Development With MQSeries Workflow By Michael S. Pallos Client Application Satisfying business needs while maintaining the flexibility to incorporate new requirements in a timely fashion
Module 1: Communication
Module 1: Communication The use of effective communication skills is an important social competency. This module assists adolescents with distinguishing between aggressive, assertive and nonassertive communication.
Programming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
XML Processing and Web Services. Chapter 17
XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing
1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
Report on the Examination
Version 1.0 0712 General Certificate of Education (A-level) June Computing COMP1 (Specification 2510) Unit 1: Problem Solving, Programming, Data Representation and Practical Exercise Report on the Examination
Key Requirements for a Job Scheduling and Workload Automation Solution
Key Requirements for a Job Scheduling and Workload Automation Solution Traditional batch job scheduling isn t enough. Short Guide Overcoming Today s Job Scheduling Challenges While traditional batch job
Efficient database auditing
Topicus Fincare Efficient database auditing And entity reversion Dennis Windhouwer Supervised by: Pim van den Broek, Jasper Laagland and Johan te Winkel 9 April 2014 SUMMARY Topicus wants their current
GCE Computing. COMP3 Problem Solving, Programming, Operating Systems, Databases and Networking Report on the Examination.
GCE Computing COMP3 Problem Solving, Programming, Operating Systems, Databases and Networking Report on the Examination 2510 Summer 2014 Version: 1.0 Further copies of this Report are available from aqa.org.uk
How To Write A Web Server In Javascript
LIBERATED: A fully in-browser client and server web application debug and test environment Derrell Lipman University of Massachusetts Lowell Overview of the Client/Server Environment Server Machine Client
Introducing DocumentDB
David Chappell Introducing DocumentDB A NoSQL Database for Microsoft Azure Sponsored by Microsoft Corporation Copyright 2014 Chappell & Associates Contents Why DocumentDB?... 3 The DocumentDB Data Model...
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
The following steps detail how to prepare your database.
Using databases in Second Life or Open Sim to enhance user experience Tom Connors, SciEthis Interactive 2012 Second Life and Open Sim each have a built in system for editing the virtual world that allows
Lecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
The Clean programming language. Group 25, Jingui Li, Daren Tuzi
The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was
Predicting the Stock Market with News Articles
Predicting the Stock Market with News Articles Kari Lee and Ryan Timmons CS224N Final Project Introduction Stock market prediction is an area of extreme importance to an entire industry. Stock price is
White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1
White Paper Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1 INTRODUCTION...3 FRAMEWORKS AND LANGUAGES...3 SECURITY AND UPGRADES...4 Major Upgrades...4 Minor Upgrades...5
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
RFID Based 3D Indoor Navigation System Integrated with Smart Phones
RFID Based 3D Indoor Navigation System Integrated with Smart Phones Y. Ortakci*, E. Demiral*, I. R. Karas* * Karabuk University, Computer Engineering Department, Demir Celik Kampusu, 78050, Karabuk, Turkey
COSC 6397 Big Data Analytics. 2 nd homework assignment Pig and Hive. Edgar Gabriel Spring 2015
COSC 6397 Big Data Analytics 2 nd homework assignment Pig and Hive Edgar Gabriel Spring 2015 2 nd Homework Rules Each student should deliver Source code (.java files) Documentation (.pdf,.doc,.tex or.txt
Fig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript.
Client-Side Dynamic Web Page Generation CGI, PHP, JSP, and ASP scripts solve the problem of handling forms and interactions with databases on the server. They can all accept incoming information from forms,
Curl Building RIA Beyond AJAX
Rich Internet Applications for the Enterprise The Web has brought about an unprecedented level of connectivity and has put more data at our fingertips than ever before, transforming how we access information
NASA Workflow Tool. User Guide. September 29, 2010
NASA Workflow Tool User Guide September 29, 2010 NASA Workflow Tool User Guide 1. Overview 2. Getting Started Preparing the Environment 3. Using the NED Client Common Terminology Workflow Configuration
CPS122 - OBJECT-ORIENTED SOFTWARE DEVELOPMENT. Team Project
CPS122 - OBJECT-ORIENTED SOFTWARE DEVELOPMENT Team Project Due Dates: See syllabus for due dates for each milestone This project spans much of the semester, to be completed as a series of milestones, each
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords Author: Paul Seymer CMSC498a Contents 1 Background... 2 1.1 HTTP 1.0/1.1... 2 1.2 Password
YOU WILL NOT BE EFFECTIVE READING THIS.
This is the most effective and powerful script for securing appointment with FSBO's you will ever put to use. This scrip will increase your appointment closing ratio by 50-60%. The thing to keep in mind
Implementing Continuous Integration Testing Prepared by:
Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...
Form Validation. Server-side Web Development and Programming. What to Validate. Error Prevention. Lecture 7: Input Validation and Error Handling
Form Validation Server-side Web Development and Programming Lecture 7: Input Validation and Error Handling Detecting user error Invalid form information Inconsistencies of forms to other entities Enter
Voice Driven Animation System
Voice Driven Animation System Zhijin Wang Department of Computer Science University of British Columbia Abstract The goal of this term project is to develop a voice driven animation system that could take
Lab 2 : Basic File Server. Introduction
Lab 2 : Basic File Server Introduction In this lab, you will start your file system implementation by getting the following FUSE operations to work: CREATE/MKNOD, LOOKUP, and READDIR SETATTR, WRITE and
Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON
Revista Informatica Economică, nr. 4 (44)/2007 45 Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON Iulian ILIE-NEMEDI, Bucharest, Romania, [email protected] Writing a custom web
using version control in system administration
LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.
Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008
Professional Organization Checklist for the Computer Science Curriculum Updates Association of Computing Machinery Computing Curricula 2008 The curriculum guidelines can be found in Appendix C of the report
Guide to Trading GUIDE TO TRADING
GUIDE TO TRADING 1 Table of contents THE GUIDE...3 INTRODUCTION...4 GETTING STARTED...8 HOW TO TRADE... 12 LADDER OPTION...20 ABOUT US...24 BASIC GLOSSARY...25 2 The Guide Dear client/investor We welcome
Visualization of Semantic Windows with SciDB Integration
Visualization of Semantic Windows with SciDB Integration Hasan Tuna Icingir Department of Computer Science Brown University Providence, RI 02912 [email protected] February 6, 2013 Abstract Interactive Data
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
Software Documentation Guidelines
Software Documentation Guidelines In addition to a working program and its source code, you must also author the documents discussed below to gain full credit for the programming project. The fundamental
Advanced Tutorials. Numeric Data In SAS : Guidelines for Storage and Display Paul Gorrell, Social & Scientific Systems, Inc., Silver Spring, MD
Numeric Data In SAS : Guidelines for Storage and Display Paul Gorrell, Social & Scientific Systems, Inc., Silver Spring, MD ABSTRACT Understanding how SAS stores and displays numeric data is essential
Assignment # 2: Design Patterns and GUIs
CSUS COLLEGE OF ENGINEERING AND COMPUTER SCIENCE Department of Computer Science CSc 133 Object-Oriented Computer Graphics Programming Spring 2014 John Clevenger Assignment # 2: Design Patterns and GUIs
In-memory Tables Technology overview and solutions
In-memory Tables Technology overview and solutions My mainframe is my business. My business relies on MIPS. Verna Bartlett Head of Marketing Gary Weinhold Systems Analyst Agenda Introduction to in-memory
Maintaining Stored Procedures in Database Application
Maintaining Stored Procedures in Database Application Santosh Kakade 1, Rohan Thakare 2, Bhushan Sapare 3, Dr. B.B. Meshram 4 Computer Department VJTI, Mumbai 1,2,3. Head of Computer Department VJTI, Mumbai
While Loops and Animations
C h a p t e r 6 While Loops and Animations In this chapter, you will learn how to use the following AutoLISP functions to World Class standards: 1. The Advantage of Using While Loops and Animation Code
Working with forms in PHP
2002-6-29 Synopsis In this tutorial, you will learn how to use forms with PHP. Page 1 Forms and PHP One of the most popular ways to make a web site interactive is the use of forms. With forms you can have
SOLUTION BRIEF. Advanced ODBC and JDBC Access to Salesforce Data. www.datadirect.com
SOLUTION BRIEF Advanced ODBC and JDBC Access to Salesforce Data 2 CLOUD DATA ACCESS In the terrestrial world of enterprise computing, organizations depend on advanced JDBC and ODBC technologies to provide
Java and IRC. What Is IRC? Nicks, Channels and Operators. Using IRC. What Is an IRC Bot? IRC Protocol
What Is IRC? Java and IRC Making a Java IRC Bot With The PircBot Framework IRC stands for Internet Relay Chat Created by Jarkko Oikarinen in 1988 and still growing in popularity An IRC server allows people
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
Cache Database: Introduction to a New Generation Database
Cache Database: Introduction to a New Generation Database Amrita Bhatnagar Department of Computer Science and Engineering, Birla Institute of Technology, A 7, Sector 1, Noida 201301 UP [email protected]
4D and SQL Server: Powerful Flexibility
4D and SQL Server: Powerful Flexibility OVERVIEW MS SQL Server has become a standard in many parts of corporate America. It can manage large volumes of data and integrates well with other products from
Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG
Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written
Book 3 Cost Estimating in an Agile Development Environment. (early release)
Book 3 Cost Estimating in an Agile Development Environment (early release) Book 3: Cost Estimating in an Agile Development Environment In this third book I ll use the slides I gave at a speech several
Lecture 15 - Web Security
CSE497b Introduction to Computer and Network Security - Spring 2007 - Professor Jaeger Lecture 15 - Web Security CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger www.cse.psu.edu/~tjaeger/cse497b-s07/
Documentation for Online Travel Site. Ashish Khullar Dushyant Bansal Saurabh Gupta Vianyak Bhavnani
Documentation for Online Travel Site Ashish Khullar Dushyant Bansal Saurabh Gupta Vianyak Bhavnani 17th September 2008 Contents 1 Introduction 3 2 Features Offered 4 2.1 Hot Destinations.........................
How to Use the Auction Effect to Sell Your House Faster
How to Use the Auction Effect to Sell Your House Faster This approach has also been called How to Sell Your House in 24 Hours but you can take a whole weekend! Have you ever noticed that some houses seem
ASNA Case Study. ASNA Visual RPG paves the path to.net for Management Control. Leaders in IBM i Modernization. Real Life Challenges
ASNA Case Study ASNA Visual RPG paves the path to.net for Management Control. By Thomas M. Stockwell When Management Control, Inc. in Alexander, Alabama decided to distribute its payroll processing services
Character Bodypart Tutorial
Level: Intermediate Character Bodypart Tutorial By Popcorn INTRODUCTION Have you ever tried to make a platform game, but given up on the fact that you just aren't good enough with the graphics? If you
Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION
539752 ch01.qxd 9/9/03 11:38 PM Page 5 SESSION 1 Introduction to Microsoft Access and Programming Session Checklist Understanding what programming is Using the Visual Basic language Programming for the
Grid Computing for Artificial Intelligence
Grid Computing for Artificial Intelligence J.M.P. van Waveren May 25th 2007 2007, Id Software, Inc. Abstract To show intelligent behavior in a First Person Shooter (FPS) game an Artificial Intelligence
WHITE PAPER WORK PROCESS AND TECHNOLOGIES FOR MAGENTO PERFORMANCE (BASED ON FLIGHT CLUB) June, 2014. Project Background
WHITE PAPER WORK PROCESS AND TECHNOLOGIES FOR MAGENTO PERFORMANCE (BASED ON FLIGHT CLUB) June, 2014 Project Background Flight Club is the world s leading sneaker marketplace specialising in storing, shipping,
SuneroDoc Leverages Dynamsoft SDK to Help Legal, Insurance and Consulting Users Experience Simple but Comprehensive Document Management
SuneroDoc Leverages Dynamsoft SDK to Help Legal, Insurance and Consulting Users Experience Simple but Comprehensive Document Management INDUSTRY: Consulting, Insurance, Legal IN BRIEF Sunero Technologies
6.1. Example: A Tip Calculator 6-1
Chapter 6. Transition to Java Not all programming languages are created equal. Each is designed by its creator to achieve a particular purpose, which can range from highly focused languages designed for
What's New in BarTender 2016
What's New in BarTender 2016 WHITE PAPER Contents Introduction 3 64-bit BarTender Installation 3 Data Entry Forms 3 BarTender Integration Builder 3 BarTender Print Portal 3 Other Upgrades 3 64-bit BarTender
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.
LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.
New Generation of Software Development
New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 [email protected] ABSTRACT In this paper, I present a picture of what software development
The Answer to the 14 Most Frequently Asked Modbus Questions
Modbus Frequently Asked Questions WP-34-REV0-0609-1/7 The Answer to the 14 Most Frequently Asked Modbus Questions Exactly what is Modbus? Modbus is an open serial communications protocol widely used in
Integrating with BarTender Integration Builder
Integrating with BarTender Integration Builder WHITE PAPER Contents Overview 3 Understanding BarTender's Native Integration Platform 4 Integration Builder 4 Administration Console 5 BarTender Integration
PCI vs. PCI Express vs. AGP
PCI vs. PCI Express vs. AGP What is PCI Express? Introduction So you want to know about PCI Express? PCI Express is a recent feature addition to many new motherboards. PCI Express support can have a big
Automatic Inventory Control: A Neural Network Approach. Nicholas Hall
Automatic Inventory Control: A Neural Network Approach Nicholas Hall ECE 539 12/18/2003 TABLE OF CONTENTS INTRODUCTION...3 CHALLENGES...4 APPROACH...6 EXAMPLES...11 EXPERIMENTS... 13 RESULTS... 15 CONCLUSION...
Visualizing molecular simulations
Visualizing molecular simulations ChE210D Overview Visualization plays a very important role in molecular simulations: it enables us to develop physical intuition about the behavior of a system that is
Animations in DrRacket
90 Chapter 6 Animations in DrRacket 6.1 Preliminaries Up to this point we ve been working with static pictures. But it s much more fun and interesting to deal with pictures that change over time and interact
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
Intelligent Log Analyzer. André Restivo <[email protected]>
Intelligent Log Analyzer André Restivo 9th January 2003 Abstract Server Administrators often have to analyze server logs to find if something is wrong with their machines.
Version Control with. Ben Morgan
Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove
V16 Pro - What s New?
V16 Pro - What s New? Welcome to the V16 Pro. If you re an experienced V16+ and WinScript user, the V16 Pro and WinScript Live will seem like old friends. In fact, the new V16 is designed to be plug compatible
ExmoR A Testing Tool for Control Algorithms on Mobile Robots
ExmoR A Testing Tool for Control Algorithms on Mobile Robots F. Lehmann, M. Ritzschke and B. Meffert Institute of Informatics, Humboldt University, Unter den Linden 6, 10099 Berlin, Germany E-mail: [email protected],
Sources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
Cloud Backup Express
Cloud Backup Express Table of Contents Installation and Configuration Workflow for RFCBx... 3 Cloud Management Console Installation Guide for Windows... 4 1: Run the Installer... 4 2: Choose Your Language...
