Developing an Inventory Management System for Second Life

Size: px
Start display at page:

Download "Developing an Inventory Management System for Second Life"

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 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:

More information

Commander. The World's Leading Software for Label, Barcode, RFID & Card Printing

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

More information

Semester Thesis Traffic Monitoring in Sensor Networks

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

More information

THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY

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

More information

7 Why Use Perl for CGI?

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

More information

Efficiency of Web Based SAX XML Distributed Processing

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

More information

MAGENTO HOSTING Progressive Server Performance Improvements

MAGENTO HOSTING Progressive Server Performance Improvements MAGENTO HOSTING Progressive Server Performance Improvements Simple Helix, LLC 4092 Memorial Parkway Ste 202 Huntsville, AL 35802 sales@simplehelix.com 1.866.963.0424 www.simplehelix.com 2 Table of Contents

More information

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 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

More information

1001ICT Introduction To Programming Lecture Notes

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

More information

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 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

More information

Creating While Loops with Microsoft SharePoint Designer Workflows Using Stateful Workflows

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

More information

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu 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: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming

More information

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

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

More information

A REST API for Arduino & the CC3000 WiFi Chip

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

More information

The Taxman Game. Robert K. Moniot September 5, 2003

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

More information

Databases in Microsoft Access David M. Marcovitz, Ph.D.

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,

More information

PGR Computing Programming Skills

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

More information

Satisfying business needs while maintaining the

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

More information

Module 1: Communication

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.

More information

Programming Languages CIS 443

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

More information

XML Processing and Web Services. Chapter 17

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

More information

1/20/2016 INTRODUCTION

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

More information

Report on the Examination

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

More information

Key Requirements for a Job Scheduling and Workload Automation Solution

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

More information

Efficient database auditing

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

More information

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. 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

More information

How To Write A Web Server In Javascript

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

More information

Introducing DocumentDB

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...

More information

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

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

More information

The following steps detail how to prepare your database.

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

More information

Lecture 1: Introduction

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

More information

The Clean programming language. Group 25, Jingui Li, Daren Tuzi

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

More information

Predicting the Stock Market with News Articles

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

More information

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 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

More information

CS 106 Introduction to Computer Science I

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

More information

RFID Based 3D Indoor Navigation System Integrated with Smart Phones

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

More information

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 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

More information

Success story. IBM Business Consulting Services and IBM Rational Rapid Developer help legacy developers deliver J2EE applications for state agency

Success story. IBM Business Consulting Services and IBM Rational Rapid Developer help legacy developers deliver J2EE applications for state agency Copyright Rational Software 2003 http://www.rational.com/content/jun_03/f_success.jsp Success story IBM Business Consulting Services and IBM Rational Rapid Developer help legacy developers deliver J2EE

More information

Fig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript.

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,

More information

Curl Building RIA Beyond AJAX

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

More information

NASA Workflow Tool. User Guide. September 29, 2010

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

More information

CPS122 - OBJECT-ORIENTED SOFTWARE DEVELOPMENT. Team Project

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

More information

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 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

More information

YOU WILL NOT BE EFFECTIVE READING THIS.

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

More information

Implementing Continuous Integration Testing Prepared by:

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...

More information

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. 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

More information

Voice Driven Animation System

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

More information

Lab 2 : Basic File Server. Introduction

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

More information

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

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, inemedi@ie.ase.ro Writing a custom web

More information

using version control in system administration

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.

More information

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 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

More information

Guide to Trading GUIDE TO TRADING

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

More information

Visualization of Semantic Windows with SciDB Integration

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 hti@cs.brown.edu February 6, 2013 Abstract Interactive Data

More information

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

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

More information

Software Documentation Guidelines

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

More information

Usability Test Results

Usability Test Results Usability Test Results Task: Starting Position: 1 Home Scene Lauren DiVito March 6, 2014 Moderator Script: Evaluation Measures: Notes to Moderator: Task: Starting Position: Moderator Script: Evaluation

More information

Advanced Tutorials. Numeric Data In SAS : Guidelines for Storage and Display Paul Gorrell, Social & Scientific Systems, Inc., Silver Spring, MD

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

More information

Assignment # 2: Design Patterns and GUIs

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

More information

In-memory Tables Technology overview and solutions

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

More information

Maintaining Stored Procedures in Database Application

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

More information

While Loops and Animations

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

More information

Working with forms in PHP

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

More information

SOLUTION BRIEF. Advanced ODBC and JDBC Access to Salesforce Data. www.datadirect.com

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

More information

Java and IRC. What Is IRC? Nicks, Channels and Operators. Using IRC. What Is an IRC Bot? IRC Protocol

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

More information

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 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

More information

Cache Database: Introduction to a New Generation Database

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 amritapsaxena@gmail.com

More information

4D and SQL Server: Powerful Flexibility

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

More information

Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG

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

More information

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 (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

More information

Lecture 15 - Web Security

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/

More information

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 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.........................

More information

How to Use the Auction Effect to Sell Your House Faster

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

More information

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. 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

More information

Character Bodypart Tutorial

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

More information

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION

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

More information

Grid Computing for Artificial Intelligence

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

More information

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 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,

More information

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 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

More information

6.1. Example: A Tip Calculator 6-1

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

More information

THE DEFINITIVE GUIDE TO PASSENGER INFORMATION SYSTEMS

THE DEFINITIVE GUIDE TO PASSENGER INFORMATION SYSTEMS WHITEPAPER THE DEFINITIVE GUIDE TO PASSENGER INFORMATION SYSTEMS Passenger information systems come in many different forms. They are comprised of direct methods of communication, such as websites and

More information

What's New in BarTender 2016

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

More information

Hypercosm. Studio. www.hypercosm.com

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

More information

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.

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.

More information

Obelisk: Summoning Minions on a HPC Cluster

Obelisk: Summoning Minions on a HPC Cluster Obelisk: Summoning Minions on a HPC Cluster Abstract In scientific research, having the ability to perform rigorous calculations in a bearable amount of time is an invaluable asset. Fortunately, the growing

More information

New Generation of Software Development

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 tyehon@cs.ubc.ca ABSTRACT In this paper, I present a picture of what software development

More information

CHAPTER 7. E-Mailing with CGI

CHAPTER 7. E-Mailing with CGI CHAPTER 7 E-Mailing with CGI OVERVIEW One of the most important tasks of any CGI program is ultimately to let someone know that something has happened. The most convenient way for users is to have this

More information

The Answer to the 14 Most Frequently Asked Modbus Questions

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

More information

Integrating with BarTender Integration Builder

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

More information

PCI vs. PCI Express vs. AGP

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

More information

Automatic Inventory Control: A Neural Network Approach. Nicholas Hall

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...

More information

Visualizing molecular simulations

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

More information

Animations in DrRacket

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

More information

Crash Course in Java

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

More information

Intelligent Log Analyzer. André Restivo <andre.restivo@portugalmail.pt>

Intelligent Log Analyzer. André Restivo <andre.restivo@portugalmail.pt> 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.

More information

Version Control with. Ben Morgan

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

More information

V16 Pro - What s New?

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

More information

ExmoR A Testing Tool for Control Algorithms on Mobile Robots

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: falk.lehmann@gmx.de,

More information

Sources: On the Web: Slides will be available on:

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,

More information

Cloud Backup Express

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...

More information