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

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

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

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

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

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

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

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

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

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

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

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

LIBERATED: A fully in-browser client and server web application debug and test environment. Derrell Lipman, University of Massachusetts Lowell

LIBERATED: A fully in-browser client and server web application debug and test environment. Derrell Lipman, University of Massachusetts Lowell 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

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

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

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

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

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

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

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

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

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

Chapter 1. 1.1Reasons for Studying Concepts of Programming Languages

Chapter 1. 1.1Reasons for Studying Concepts of Programming Languages Chapter 1 1.1Reasons for Studying Concepts of Programming Languages a) Increased ability to express ideas. It is widely believed that the depth at which we think is influenced by the expressive power of

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin wolin@jlab.org Carl Timmer timmer@jlab.org

More information

IBM Customer Experience Suite and Electronic Forms

IBM Customer Experience Suite and Electronic Forms Introduction It s more important than ever to have a set of capabilities that allow you to create dynamic, self service options for your customers that leverage existing processes and infrastructure. Your

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

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

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

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

CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly

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

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

PHP. Intro, Syntax, Variables, Echo, Data Types

PHP. Intro, Syntax, Variables, Echo, Data Types PHP Intro, Syntax, Variables, Echo, Data Types Introduction PHP scripts are executed on the server. What You Should Already Know Before you continue you should have a basic understanding of the following:

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

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

Exploratory Testing in an Agile Context

Exploratory Testing in an Agile Context Exploratory Testing in an Agile Context A guide to using Exploratory Testing on Agile software development teams. Elisabeth Hendrickson 2 Exploratory Testing. So you bang on the keyboard randomly, right?

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

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

Introduction to SQL for Data Scientists

Introduction to SQL for Data Scientists Introduction to SQL for Data Scientists Ben O. Smith College of Business Administration University of Nebraska at Omaha Learning Objectives By the end of this document you will learn: 1. How to perform

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

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

Lesson 8: Simon - Arrays

Lesson 8: Simon - Arrays Lesson 8: Simon - Arrays Introduction: As Arduino is written in a basic C programming language, it is very picky about punctuation, so the best way to learn more complex is to pick apart existing ones.

More information

Implementation of Breiman s Random Forest Machine Learning Algorithm

Implementation of Breiman s Random Forest Machine Learning Algorithm Implementation of Breiman s Random Forest Machine Learning Algorithm Frederick Livingston Abstract This research provides tools for exploring Breiman s Random Forest algorithm. This paper will focus on

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

Social Network Website to Monitor Behavior Change Design Document

Social Network Website to Monitor Behavior Change Design Document Social Network Website to Monitor Behavior Change Design Document Client: Yolanda Coil Advisor: Simanta Mitra Team #11: Gavin Monroe Nicholas Schramm Davendra Jayasingam Table of Contents PROJECT TEAM

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

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

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

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

Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs)

Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs) Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs) 1. Foreword Magento is a PHP/Zend application which intensively uses the CPU. Since version 1.1.6, each new version includes some

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

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

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

Intelligent Log Analyzer. André Restivo

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

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

1. To start Installation: To install the reporting tool, copy the entire contents of the zip file to a directory of your choice. Run the exe.

1. To start Installation: To install the reporting tool, copy the entire contents of the zip file to a directory of your choice. Run the exe. CourseWebs Reporting Tool Desktop Application Instructions The CourseWebs Reporting tool is a desktop application that lets a system administrator modify existing reports and create new ones. Changes to

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

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

Equipment Room Database and Web-Based Inventory Management

Equipment Room Database and Web-Based Inventory Management Equipment Room Database and Web-Based Inventory Management System Block Diagram Sean M. DonCarlos Ryan Learned Advisors: Dr. James H. Irwin Dr. Aleksander Malinowski November 4, 2002 System Overview The

More information

Real SQL Programming 1

Real SQL Programming 1 Real 1 We have seen only how SQL is used at the generic query interface an environment where we sit at a terminal and ask queries of a database. Reality is almost always different: conventional programs

More information

Code Qualities and Coding Practices

Code Qualities and Coding Practices Code Qualities and Coding Practices Practices to Achieve Quality Scott L. Bain and the Net Objectives Agile Practice 13 December 2007 Contents Overview... 3 The Code Quality Practices... 5 Write Tests

More information

LICENSE4J FLOATING LICENSE SERVER USER GUIDE

LICENSE4J FLOATING LICENSE SERVER USER GUIDE LICENSE4J FLOATING LICENSE SERVER USER GUIDE VERSION 4.5.5 LICENSE4J www.license4j.com Table of Contents Getting Started... 2 Floating License Usage... 2 Installation... 4 Windows Installation... 4 Linux

More information

WIRIS quizzes web services Getting started with PHP and Java

WIRIS quizzes web services Getting started with PHP and Java WIRIS quizzes web services Getting started with PHP and Java Document Release: 1.3 2011 march, Maths for More www.wiris.com Summary This document provides client examples for PHP and Java. Contents WIRIS

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

UNIVERSITY OF WATERLOO Software Engineering. Analysis of Different High-Level Interface Options for the Automation Messaging Tool

UNIVERSITY OF WATERLOO Software Engineering. Analysis of Different High-Level Interface Options for the Automation Messaging Tool UNIVERSITY OF WATERLOO Software Engineering Analysis of Different High-Level Interface Options for the Automation Messaging Tool Deloitte Inc. Toronto, ON M5K 1B9 Prepared By Matthew Stephan Student ID:

More information

Automatic Text Analysis Using Drupal

Automatic Text Analysis Using Drupal Automatic Text Analysis Using Drupal By Herman Chai Computer Engineering California Polytechnic State University, San Luis Obispo Advised by Dr. Foaad Khosmood June 14, 2013 Abstract Natural language processing

More information

Object Oriented Database Management System for Decision Support System.

Object Oriented Database Management System for Decision Support System. International Refereed Journal of Engineering and Science (IRJES) ISSN (Online) 2319-183X, (Print) 2319-1821 Volume 3, Issue 6 (June 2014), PP.55-59 Object Oriented Database Management System for Decision

More information

Licensing for BarTender s Automation Editions

Licensing for BarTender s Automation Editions The World's Leading Software for Label, Barcode, RFID & Card Printing White Paper Licensing for BarTender s Automation Editions Understanding Printer-Based Licensing and How to Configure Seagull License

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

Fuzzy Keyword Search over Encrypted Stego in Cloud

Fuzzy Keyword Search over Encrypted Stego in Cloud International Journal of Computer Sciences and Engineering Open Access Review Paper Volume-4, Issue-02 E-ISSN: 2347-2693 Fuzzy Keyword Search over Encrypted Stego in Cloud TanmayDahake 1*, MirsohailShaikh

More information

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.

More information

Data processing goes big

Data processing goes big Test report: Integration Big Data Edition Data processing goes big Dr. Götz Güttich Integration is a powerful set of tools to access, transform, move and synchronize data. With more than 450 connectors,

More information

16.1 MAPREDUCE. For personal use only, not for distribution. 333

16.1 MAPREDUCE. For personal use only, not for distribution. 333 For personal use only, not for distribution. 333 16.1 MAPREDUCE Initially designed by the Google labs and used internally by Google, the MAPREDUCE distributed programming model is now promoted by several

More information

Maximizing your SAP ERP

Maximizing your SAP ERP 950 Tower Lane, Suite 750 Foster City, CA 94404 650.341.3310 phone 650.341.3610 fax www.guixt.com Maximizing your SAP ERP Desktop Suite GuiXT Portal Suite Web UI Suite Mobile Suite Offline Suite Developer

More information

12Planet Chat end-user manual

12Planet Chat end-user manual 12Planet Chat end-user manual Document version 1.0 12Planet 12Planet Page 2 / 13 Table of content 1 General... 4 1.1 How does the chat work?... 4 1.2 Browser Requirements... 4 1.3 Proxy / Firewall Info...

More information