Project Group Applied Functional Programming
|
|
|
- Jack Peters
- 10 years ago
- Views:
Transcription
1 Project Group Applied Functional Programming Web Development with Haskell Meike Grewing, Lukas Heidemann, Fabian Thorand and Fabian Zaiser Informatik, Universität Bonn, Germany Abstract The goal of the project group Applied Functional Programming was to get an insight into web development using Haskell and the web framework Yesod. In this paper, we want to document our main project, a web implementation of the well-known game Battleships including an artificial intelligence. You can find the code on GitHub 1 and play the current production version 2. 1 Introduction Our main project was to develop a Battleships web application providing a neat graphical user interface and an adjustable AI to play against. We decided to use the following rules: Each player begins with a total of ten ships: one ship of length five, two of length four, three of length three and four of length two. When a shot hit a ship, the player may fire again. In addition to the usual rules, our version of the game includes some modifications: In addition to firing a shot, the player is allowed to move one of his ships forward or backward by one cell in each round (adhering to the placement regulations). As soon as one of your ships is completely sunk, other ships can be moved across the space it previously occupied. The number of turns is limited to prevent endless games. After the last turn, the player with the most remaining ships wins. 2 Architecture and Framework For our project, we used the Yesod Web Framework 3 developed by Michael Snoyman and others. Its goals are performance, type-safety and conciseness of code. For these purposes Yesod offers embedded DSLs 4 using template haskell for writing HTML, CSS and JavaScript code which allow using variables from Haskell code and are syntactically simpler (e.g. the DSL for HTML uses indentation instead of closing tags). There is also a lot of Domain Specific Languages 1
2 Figure 1: Typical game view. Shots are fired by clicking on the target. Figure 2: The ships can be placed randomly or via drag and drop. compile-time checking involved. URLs in Yesod are type safe, meaning that one specifies which parameters a certain route expects and their types. Whenever it is referenced, e.g. in hyperlinks or redirections, the compiler checks if the expected and actual data formats match. This makes 404 errors for internal links almost impossible. Furthermore, the type system guarantees that dynamic content inserted into HTML pages is verified or escaped, preventing common attacks like cross site scripting (XSS). Yesod also offers good support for internationalization. In fact, our project web site is available in English and German. The game logic resides on the server and is completely written in Haskell. On the client
3 Figure 3: Recap of the game. (animated) side, we use JavaScript for ship placement, handling of clicks on the boards and viewing the replay. It is important to note here that even the visual representation of the game is created in Haskell. The images of the current game state are generated using diagrams, a DSL for declaratively describing vector graphics. Then they are rendered to SVG and included in the web page. Thus, all the JavaScript code really does is display a sequence of graphics created by Haskell code. The game state is not stored on the server but is sent back and forth between client and server. To prevent manipulations on the client side the state is encrypted before being exposed. Of course we could have implemented the game with only HTML and JavaScript which would have made the transfer of the game state between client and server obsolete. On the other hand, that would have meant having to go without everything Haskell has to offer. For instance, the type system not only enforces writing code that works but also offers ways to clarify that the AI is not cheating (see section 3). Besides, Diagrams makes it pleasant to write the rendering code. In a non-declarative language like JavaScript this would have been a lot more frustrating and error-prone. Besides, our goal was not to write another version of Battleships but to learn about the advantages and disadvantages of using a functional programming language for web development. Battleships was merely a means to an end. 3 Demonstrating that the AI Plays Fair Of course, the AI should play fair and observe the same rules as the human player. Allowing ship movement makes it harder to check the AI for fair play (because one cannot observe its movements), so we tried our best to clarify that the AI cannot cheat : After the game ends, we produce an animated recap of the course of the game to help the player comprehend what happened at what time. We use Haskell s type system to make it easy to find the places in the code where the AI
4 does get information and interact with the game logic. This way, it is easier to check the code to convince oneself that the the AI cannot cheat. More precisely, every AI is an instance of the type class 5 AI which is defined as follows: class AI a where aiinit :: (MonadRandom m) => Rules -> m (a, FleetPlacement) aifire :: (MonadRandom m, MonadState a m) => m Pos airesponse :: (MonadRandom m, MonadState a m) => Pos -> HitResponse -> m () aimove :: (MonadRandom m, MonadState a m) => Fleet -> TrackingList -> m (Maybe (ShipID, Movement)) On the one hand, Haskell s type system restricts the AI to use the given random number generator (via MonadRandom) and its own state (via MonadState), in addition to the information given by the game rules (Rules), the result of the AI s last shot (HitResponse) and the AI s own fleet (Fleet) and the shots fired at the AI s fleet (TrackingList). The type system prevents the AI from having any other side effects (like IO etc.) and by using Safe Haskell (a subset of Haskell whithout functions to circumvent the type system) this constraint can be enforced by the compiler. On the other hand, the game engine is polymorphic in the AI type, so it can only interact with the AI via the functions prodived by the AI type class. While it may be possible to pass additional information to the AI via these functions by misusing the data types in the parameters, one can easily verify that this is not the case by looking at the places where the four aforementioned functions are invoked. 4 Battleships AI In addition to a simple AI which basically does everything at random, we implemented a much more sophisticated AI which we are going to describe in some detail here. 4.1 Scoring Cells When deciding on a cell to fire at, it is necessary to know which cells cannot currently be occupied by a ship. This is the case if we just found out that there is water at a certain position, or just sunk a ship there, or hit a ship at a position that is diagonally adjacent to the cell. When ships are movable, you often cannot tell for sure whether a cell is blocked or not. Ships may move over water cells or completely sunk ships. Thus, we model the probability for a cell to be water as exponential decay with factor The AI selects its next target by computing a score for each position. A high score indicates a high probability to hit a ship at that position, so the AI chooses the position with the highest score as its next target. To make playing more interesting, we added some randomness to calculating the scores. The amount of randomness depends on the selected difficulty level; the scoring method depends on whether ships are movable or not. 5 Type classes in Haskell correspond very roughly to interfaces in OOP
5 Immovable Ships. Since ships will always stay at their position, the AI never has to hit a position more than once. Given that all ships have a minimum length of two, it is sufficient to apply a checkerboard pattern when searching for ships. For each position on the board the AI considers all potential ships that this position is part of. This way it can score the position according to the likeliness of hitting a ship there. Movable Ships. In this case there are two phases because the amount of turns is limited: During the beginning, the search phase, the AI follows a checkerboard pattern to find (and not sink!) all ships. Sinking is not beneficial at this stage because it allows ships to move around more freely. When the AI has found enough ships or there are only few turns left, the AI switches to the sink phase and tries to completely sink all the previously discovered ships, applying the same scoring function as in the immovable case. 4.2 Moving Ships In each turn, the AI generates all possible movements of all movable ships and chooses one at random, or also randomly decides not to move at all. 5 Conclusion Admittedly, web programming in Haskell still has some minor flaws (especially the use of Template Haskell in combination with a lack of proper documentation sometimes led to difficulties). This, however, is only due to Yesod being still under active development and not a general flaw with web development in Haskell by itself. Then again, Haskell s expressive type system and powerful abstraction mechanism are strong advantages when developing web applications, especially regarding security and maintainability. And using a declarative DSL for graphics simplifies the drawing process, as thinking about what should be drawn is easier than thinking about how it should be drawn.
Why HTML5 Tests the Limits of Automated Testing Solutions
Why HTML5 Tests the Limits of Automated Testing Solutions Why HTML5 Tests the Limits of Automated Testing Solutions Contents Chapter 1 Chapter 2 Chapter 3 Chapter 4 As Testing Complexity Increases, So
Comparing Dynamic and Static Language Approaches to Web Frameworks
Comparing Dynamic and Static Language Approaches to Web Frameworks Neil Brown School of Computing University of Kent UK 30 April 2012 2012-05-01 Comparing Dynamic and Static Language Approaches to Web
YouTrack MPS case study
YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project
Game Design From Concepts To Implementation
Game Design From Concepts To Implementation Overview of a Game Engine What is a Game Engine? (Really) Technical description of game: A Soft real-time interactive agent-based computer simulation A game
Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation
Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation Credit-By-Assessment (CBA) Competency List Written Assessment Competency List Introduction to the Internet
game development documentation game development documentation: concept document
topics: game design documents design document references: cisc3665 game design fall 2011 lecture # IV.1 game development documentation notes from: Game Design: Theory & Practice (2nd Edition), by Richard
Information Technology Career Field Pathways and Course Structure
Information Technology Career Field Pathways and Course Structure Courses in Information Support and Services (N0) Computer Hardware 2 145025 Computer Software 145030 Networking 2 145035 Network Operating
Advantages of PML as an iseries Web Development Language
Advantages of PML as an iseries Web Development Language What is PML PML is a highly productive language created specifically to help iseries RPG programmers make the transition to web programming and
COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida
COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida CREDIT HOURS 3 credits hours PREREQUISITE Completion of EME 6208 with a passing
IE Class Web Design Curriculum
Course Outline Web Technologies 130.279 IE Class Web Design Curriculum Unit 1: Foundations s The Foundation lessons will provide students with a general understanding of computers, how the internet works,
Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence
Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence Introduction Client-Side scripting involves using programming technologies to build web pages and applications that are run on the client (i.e.
WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER
WEB, HYBRID, NATIVE EXPLAINED June 2013 CRAIG ISAKSON MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER 701.235.5525 888.sundog fax: 701.235.8941 2000 44th St. S Floor 6 Fargo, ND 58103 www.sundoginteractive.com
separate the content technology display or delivery technology
Good Morning. In the mobile development space, discussions are often focused on whose winning the mobile technology wars how Android has the greater share of the mobile market or how Apple is has the greatest
Email testing EFFECTIVE TESTS FOR EVERY METRIC OF AN EMAIL CAMPAIGN
Email testing guide EFFECTIVE TESTS FOR EVERY METRIC OF AN EMAIL CAMPAIGN GUIDE TO TESTING YOUR EMAIL MARKETING CAMPAIGNS The savvy email marketer knows that to maximize email marketing ROI, testing is
Enterprise Mobile Application Development: Native or Hybrid?
Enterprise Mobile Application Development: Native or Hybrid? Enterprise Mobile Application Development: Native or Hybrid? SevenTablets 855-285-2322 [email protected] http://www.seventablets.com
Whitepaper. Trans. for Mobile
Whitepaper Trans forming Your Vision Into Winning Solutions How to Save 50%, 75% or more for Mobile Appp Development www.baytechservices.com Background As mobile access has transitioned from a nice to
Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph. Client: Brian Krzys
Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph Client: Brian Krzys June 17, 2014 Introduction Newmont Mining is a resource extraction company with a research and development
WHITE PAPER. FortiWeb and the OWASP Top 10 Mitigating the most dangerous application security threats
WHITE PAPER FortiWeb and the OWASP Top 10 PAGE 2 Introduction The Open Web Application Security project (OWASP) Top Ten provides a powerful awareness document for web application security. The OWASP Top
New Generation of Software Development
New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 [email protected] ABSTRACT In this paper, I present a picture of what software development
Business Process Management In An Application Development Environment
Business Process Management In An Application Development Environment Overview Today, many core business processes are embedded within applications, such that it s no longer possible to make changes to
Client vs. Server Implementations of Mitigating XSS Security Threats on Web Applications
Journal of Basic and Applied Engineering Research pp. 50-54 Krishi Sanskriti Publications http://www.krishisanskriti.org/jbaer.html Client vs. Server Implementations of Mitigating XSS Security Threats
Lesson Overview. Getting Started. The Internet WWW
Lesson Overview Getting Started Learning Web Design: Chapter 1 and Chapter 2 What is the Internet? History of the Internet Anatomy of a Web Page What is the Web Made Of? Careers in Web Development Web-Related
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
Software Requirements Specification For Real Estate Web Site
Software Requirements Specification For Real Estate Web Site Brent Cross 7 February 2011 Page 1 Table of Contents 1. Introduction...3 1.1. Purpose...3 1.2. Scope...3 1.3. Definitions, Acronyms, and Abbreviations...3
COMPUTER SCIENCE/ COMPUTER NETWORKING AND TECHNOLOGIES (COSC)
COMPUTER SCIENCE/ COMPUTER NETWORKING AND TECHNOLOGIES (COSC) Computer Science (COSC) courses are offered by the School of Information Arts and Technologies within the Yale Gordon College of Liberal Arts.
ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET
ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Mobile optimized user experience Simplified access to
Form Management Admin Guide
Form Management Admin Guide Getting around the navigation Model Management (Admin/Technical). Create, edit and manage the basic template of content models. Form Builder - Lets you create properties in
ORACLE ADF MOBILE DATA SHEET
ORACLE ADF MOBILE DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Java technology enables cross-platform business logic Mobile optimized
Bypassing Internet Explorer s XSS Filter
Bypassing Internet Explorer s XSS Filter Or: Oops, that s not supposed to happen. Carlos @RTWaysea About Me Mechanical Drafting Background Engine parts, Architectural fixtures, etc. Friend said Try This
php-crypto-params Documentation
php-crypto-params Documentation Release 1.0.0 Gian Luca Dalla Torre January 17, 2016 Contents 1 Purpose 3 2 How it works 5 2.1 Documentation.............................................. 5 i ii php-crypto-params
How to Monitor and Identify Website Issues. 2013, SolarWinds Worldwide, LLC. All rights reserved. Share:
How to Monitor and Identify Website Issues 2013, SolarWinds Worldwide, LLC. All rights reserved. Share: What Affects a Website s Performance Website performance issues can come from anywhere the page elements
Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.
Dynamic website development using the Grails Platform Joshua Davis Senior Architect Cognizant Technology Solutions [email protected] Topics Covered What is Groovy? What is Grails? What are the
HTML5 : carrier grade
HTML5 : carrier grade Alex Rutgers / CTO@Momac / February 2013. Introduction Since HTML5 became mainstream media around April 2010 and I decided to create an overview article on HTML5 in the mobile space,
Actuate Business Intelligence and Reporting Tools (BIRT)
Product Datasheet Actuate Business Intelligence and Reporting Tools (BIRT) Eclipse s BIRT project is a flexible, open source, and 100% pure Java reporting tool for building and publishing reports against
A new dimension of sound and vibration analysis
A new dimension of sound and vibration analysis HEAD Gallery Innovative functions built upon cutting-edge technology The ArtemiS suite is an integrated software solution from HEAD acoustics that allows
MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, 2015. Copyright 2015 MarkLogic Corporation. All rights reserved.
Reference Application Architecture Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents
Cross Site Scripting Prevention
Project Report CS 649 : Network Security Cross Site Scripting Prevention Under Guidance of Prof. Bernard Menezes Submitted By Neelamadhav (09305045) Raju Chinthala (09305056) Kiran Akipogu (09305074) Vijaya
Web Design Competition 2013. College of Computing Science, Department of Information Systems. New Jersey Institute of Technology
COMPETITION PURPOSE The Web is the most transformable invention of our time. This competition features the creation of high-quality, well-designed and original Websites, while seeking to identify and encourage
A Model of the Operation of The Model-View- Controller Pattern in a Rails-Based Web Server
A of the Operation of The -- Pattern in a Rails-Based Web Server January 10, 2011 v 0.4 Responding to a page request 2 A -- user clicks a link to a pattern page in on a web a web application. server January
ORACLE APPLICATION EXPRESS 5.0
ORACLE APPLICATION EXPRESS 5.0 Key Features Fully supported nocost feature of the Oracle Database Simple 2-Tier Architecture Develop desktop and mobile applications 100% Browserbased Development and Runtime
Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World
Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify
Research on HTML5 in Web Development
Research on HTML5 in Web Development 1 Ch Rajesh, 2 K S V Krishna Srikanth 1 Department of IT, ANITS, Visakhapatnam 2 Department of IT, ANITS, Visakhapatnam Abstract HTML5 is everywhere these days. HTML5
Firefox for Android. Reviewer s Guide. Contact us: [email protected]
Reviewer s Guide Contact us: [email protected] Table of Contents About Mozilla Firefox 1 Move at the Speed of the Web 2 Get Started 3 Mobile Browsing Upgrade 4 Get Up and Go 6 Customize On the Go 7 Privacy
Acunetix Website Audit. 5 November, 2014. Developer Report. Generated by Acunetix WVS Reporter (v8.0 Build 20120808)
Acunetix Website Audit 5 November, 2014 Developer Report Generated by Acunetix WVS Reporter (v8.0 Build 20120808) Scan of http://filesbi.go.id:80/ Scan details Scan information Starttime 05/11/2014 14:44:06
Accelerating Wordpress for Pagerank and Profit
Slide No. 1 Accelerating Wordpress for Pagerank and Profit Practical tips and tricks to increase the speed of your site, improve conversions and climb the search rankings By: Allan Jude November 2011 Vice
TATJA: A Test Automation Tool for Java Applets
TATJA: A Test Automation Tool for Java Applets Matthew Xuereb 19, Sanctuary Street, San Ġwann [email protected] Abstract Although there are some very good tools to test Web Applications, such tools neglect
Table of Contents Recommendation Summary... 3 Introduction... 4 Formatting Recommendations... 5 Creative:... 7 Deliverability & Infrastructure:...
Table of Contents Recommendation Summary... 3 Technical:... 3 Creative:... 3 Introduction... 4 Formatting Recommendations... 5 JavaScript:... 5 Forms:... 5 Background Tags and Colors:... 5 Html Text:...
Measure What Matters. don t Track What s Easy, track what s Important. kissmetrics.com
1 2 3 4 5 6 Measure What Matters don t Track What s Easy, track what s Important kissmetrics.com Measure What Matters A lot of technologies seem to be one step behind what we really want. And the analytics
ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT
ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT Dr. Mike Morrison, University of Wisconsin-Eau Claire, [email protected] Dr. Joline Morrison, University of Wisconsin-Eau Claire, [email protected]
Business Rules in User Interfaces
1 of 9 BUSINESS RULES COMMUNITY : The World's Most Trusted Resource For Business Rule Professionals http://www.brcommunity.com Print this Page Business Rules in User Interfaces by Kamlesh Pandey The business
38 Essential Website Redesign Terms You Need to Know
38 Essential Website Redesign Terms You Need to Know Every industry has its buzzwords, and web design is no different. If your head is spinning from seemingly endless jargon, or if you re getting ready
Client Side Filter Enhancement using Web Proxy
Client Side Filter Enhancement using Web Proxy Santosh Kumar Singh 1, Rahul Shrivastava 2 1 M Tech Scholar, Computer Technology (CSE) RCET, Bhilai (CG) India, 2 Assistant Professor, CSE Department, RCET
Portals and Hosted Files
12 Portals and Hosted Files This chapter introduces Progress Rollbase Portals, portal pages, portal visitors setup and management, portal access control and login/authentication and recommended guidelines
How Web Browsers Work
144 PART 4 HOW THE WORLD WIDE WEB WORKS CHAPTER 18 How Web Browsers Work 145 LIKE much of the Internet, the World Wide Web operates on a client/server model. You run a web client on your computer called
Secure Authentication and Session. State Management for Web Services
Lehman 0 Secure Authentication and Session State Management for Web Services Clay Lehman CSC 499: Honors Thesis Supervised by: Dr. R. Michael Young Lehman 1 1. Introduction Web services are a relatively
A Monitored Student Testing Application Using Cloud Computing
A Monitored Student Testing Application Using Cloud Computing R. Mullapudi and G. Hsieh Department of Computer Science, Norfolk State University, Norfolk, Virginia, USA [email protected], [email protected]
Chapter 10: Multimedia and the Web
Understanding Computers Today and Tomorrow 12 th Edition Chapter 10: Multimedia and the Web Learning Objectives Define Web-based multimedia and list some advantages and disadvantages of using multimedia.
Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1
Monitoring Infrastructure (MIS) Software Architecture Document Version 1.1 Revision History Date Version Description Author 28-9-2004 1.0 Created Peter Fennema 8-10-2004 1.1 Processed review comments Peter
Mobile Game and App Development the Easy Way
Mobile Game and App Development the Easy Way Developed and maintained by Pocketeers Limited (http://www.pocketeers.co.uk). For support please visit http://www.appeasymobile.com This document is protected
Use Host Information in Policy Enforcement
Use Host Information in Policy Enforcement Although you may have stringent security at your corporate network border, your network is really only as secure as the end devices that are accessing it. With
Enduring Understandings: Web Page Design is a skill that grows and develops throughout the careful planning and study of software and design.
Curriculum Map for Web Design SEPTEMBER Targeted NJ Core Curriculum Content Standards: Design develop, test, implement, update, and evaluate web solutions Technology Use, Media Literacy, Responsible Use
Where every interaction matters.
Where every interaction matters. Peer 1 Vigilant Web Application Firewall Powered by Alert Logic The Open Web Application Security Project (OWASP) Top Ten Web Security Risks and Countermeasures White Paper
Basic tutorial for Dreamweaver CS5
Basic tutorial for Dreamweaver CS5 Creating a New Website: When you first open up Dreamweaver, a welcome screen introduces the user to some basic options to start creating websites. If you re going to
International Journal of Engineering Technology, Management and Applied Sciences. www.ijetmas.com November 2014, Volume 2 Issue 6, ISSN 2349-4476
ERP SYSYTEM Nitika Jain 1 Niriksha 2 1 Student, RKGITW 2 Student, RKGITW Uttar Pradesh Tech. University Uttar Pradesh Tech. University Ghaziabad, U.P., India Ghaziabad, U.P., India ABSTRACT Student ERP
IGW+ Certificate. I d e a l G r o u p i n W e b. International professional web design,
IGW+ Certificate I d e a l G r o u p i n W e b International professional web design, Programming, CRM, online office automation, complete security, Secured Ecommerce and web site maintenance educational
Bitrix Site Manager 4.1. User Guide
Bitrix Site Manager 4.1 User Guide 2 Contents REGISTRATION AND AUTHORISATION...3 SITE SECTIONS...5 Creating a section...6 Changing the section properties...8 SITE PAGES...9 Creating a page...10 Editing
WebSphere Business Modeler
Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration
Web Pages. Static Web Pages SHTML
1 Web Pages Htm and Html pages are static Static Web Pages 2 Pages tagged with "shtml" reveal that "Server Side Includes" are being used on the server With SSI a page can contain tags that indicate that
WompMobile Technical FAQ
WompMobile Technical FAQ What are the technical benefits of WompMobile? The mobile site has the same exact URL as the desktop website. The mobile site automatically and instantly syncs with the desktop
MEng, BSc Applied Computer Science
School of Computing FACULTY OF ENGINEERING MEng, BSc Applied Computer Science Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give a machine instructions
DIPLOMA IN GRAPHIC WEB DESIGN AND WEB DEVELOPMENT COURSE INFO PACK
Registered as a Private Higher Education Institution with the Department of Higher Education and Training in South Africa under the Higher Education Act 1997 Registration Nr. 2001/HE07/005 DIPLOMA IN GRAPHIC
Web application security: automated scanning versus manual penetration testing.
Web application security White paper January 2008 Web application security: automated scanning versus manual penetration testing. Danny Allan, strategic research analyst, IBM Software Group Page 2 Contents
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,
RNA Movies 2: sequential animation of RNA secondary structures
W330 W334 Nucleic Acids Research, 2007, Vol. 35, Web Server issue doi:10.1093/nar/gkm309 RNA Movies 2: sequential animation of RNA secondary structures Alexander Kaiser 1, Jan Krüger 2 and Dirk J. Evers
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
Flash Tutorial Part I
Flash Tutorial Part I This tutorial is intended to give you a basic overview of how you can use Flash for web-based projects; it doesn t contain extensive step-by-step instructions and is therefore not
A Closer Look at BPM. January 2005
A Closer Look at BPM January 2005 15000 Weston Parkway Cary, NC 27513 Phone: (919) 678-0900 Fax: (919) 678-0901 E-mail: [email protected] http://www.ultimus.com The Information contained in this document
Integrated Network Vulnerability Scanning & Penetration Testing SAINTcorporation.com
SAINT Integrated Network Vulnerability Scanning and Penetration Testing www.saintcorporation.com Introduction While network vulnerability scanning is an important tool in proactive network security, penetration
SECURE APPLICATION DEVELOPMENT CODING POLICY OCIO-6013-09 TABLE OF CONTENTS
OFFICE OF THE CHIEF INFORMATION OFFICER OCIO-6013-09 Date of Issuance: May 22, 2009 Effective Date: May 22, 2009 Review Date: TABLE OF CONTENTS Section I. PURPOSE II. AUTHORITY III. SCOPE IV. DEFINITIONS
Criteria for web application security check. Version 2015.1
Criteria for web application security check Version 2015.1 i Content Introduction... iii ISC- P- 001 ISC- P- 001.1 ISC- P- 001.2 ISC- P- 001.3 ISC- P- 001.4 ISC- P- 001.5 ISC- P- 001.6 ISC- P- 001.7 ISC-
MOVING THE SENIOR DEVELOPMENT CLASS FROM WEB DEVELOPMENT TO LIFE CYCLE DEVELOPMENT A CASE FOR VISUAL STUDIO 2005
MOVING THE SENIOR DEVELOPMENT CLASS FROM WEB DEVELOPMENT TO LIFE CYCLE DEVELOPMENT A CASE FOR VISUAL STUDIO 2005 Thom Luce, Ohio University, [email protected] ABSTRACT Information Systems programs in Business
CHAPTER 18 Programming Your App to Make Decisions: Conditional Blocks
CHAPTER 18 Programming Your App to Make Decisions: Conditional Blocks Figure 18-1. Computers, even small ones like the phone in your pocket, are good at performing millions of operations in a single second.
Magento Security and Vulnerabilities. Roman Stepanov
Magento Security and Vulnerabilities Roman Stepanov http://ice.eltrino.com/ Table of contents Introduction Open Web Application Security Project OWASP TOP 10 List Common issues in Magento A1 Injection
1 File Processing Systems
COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.
Ball Aerospace s COSMOS Open Source Test System
Ball Aerospace s COSMOS Open Source Test System Ryan J. Melton Ball Aerospace & Technologies Corp. Boulder, CO ABSTRACT Ball Aerospace COSMOS is a free and readily available open source test and operations
What s new in Excel 2013
Work Smart by Microsoft IT What s new in Excel 2013 The first thing that you see when you open Microsoft Excel 2013 spreadsheet software is a new look. It s cleaner, but it s also designed to help you
DM810 Computer Game Programming II: AI. Lecture 11. Decision Making. Marco Chiarandini
DM810 Computer Game Programming II: AI Lecture 11 Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Resume Decision trees State Machines Behavior trees Fuzzy
A Server and Browser-Transparent CSRF Defense for Web 2.0 Applications. Slides by Connor Schnaith
A Server and Browser-Transparent CSRF Defense for Web 2.0 Applications Slides by Connor Schnaith Cross-Site Request Forgery One-click attack, session riding Recorded since 2001 Fourth out of top 25 most
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 Riley Moses Bri Fidder Jon Lewis Introduction & Product Vision BIMShift is a company that provides all
MEng, BSc Computer Science with Artificial Intelligence
School of Computing FACULTY OF ENGINEERING MEng, BSc Computer Science with Artificial Intelligence Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Task-Model Driven Design of Adaptable Educational Hypermedia
Task-Model Driven Design of Adaptable Educational Hypermedia Huberta Kritzenberger, Michael Herczeg Institute for Multimedia and Interactive Systems University of Luebeck Seelandstr. 1a, D-23569 Luebeck,
How to achieve PCI DSS Compliance with Checkmarx Source Code Analysis
How to achieve PCI DSS Compliance with Checkmarx Source Code Analysis Document Scope This document aims to assist organizations comply with PCI DSS 3 when it comes to Application Security best practices.
DIABLO VALLEY COLLEGE CATALOG 2014-2015
COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy
Subject knowledge requirements for entry into computer science teacher training. Expert group s recommendations
Subject knowledge requirements for entry into computer science teacher training Expert group s recommendations Introduction To start a postgraduate primary specialist or secondary ITE course specialising
SQL INJECTION ATTACKS By Zelinski Radu, Technical University of Moldova
SQL INJECTION ATTACKS By Zelinski Radu, Technical University of Moldova Where someone is building a Web application, often he need to use databases to store information, or to manage user accounts. And
