Collaborative Document Review System for Community Engagement
|
|
|
- Clifford Richards
- 10 years ago
- Views:
Transcription
1 SEG-N Collaborative Document Review System for Community Engagement L.S. Chin March 2011 Abstract This report describes the design and implementation of a web-based collaborative document review and editing system used to support community driven proposals. The application was written in Python using the Django Web Framework which allowed for rapid development and deployment. Keywords: Collaboration tool, community engagement, web application, django [email protected] Reports can be obtained from Software Engineering Group Computational Science & Engineering Department STFC Rutherford Appleton Laboratory Harwell Science and Innovation Campus Didcot, OX11 0QX
2 c Science and Technology Facilities Council Enquires about the copyright, reproduction and requests for additional copies of this report should be address to: Library and Information Services STFC Rutherford Appleton Laboratory Harwell Science and Innovation Campus Didcot, OX11 0QX Tel: +44 (0) Fax: +44 (0) STFC reports are available online at: ISSN Neither the Council nor the Laboratory accept any responsibility for loss or damage arising from the use of information contained in any of their reports or in any communication about their tests or investigations
3 Contents 1 Introduction 1 2 Brief Introduction to Django Data model Application Logic User Interface (templates) The Collaborative Document Review Component Requirements Document Data Format Online Editor Document Parsing and Decomposition Data Model Contextual Comment UI Miscellaneous Issues Spam Control caching Caching in Django Our Approach Caching database queries Site Statistics Visitor Tracking Conclusion 14 i
4
5 1 Introduction When EPSRC issued a call for Statement of Needs for new Collaborative Computational Projects (CCPs) [1], the Software Engineering Group deployed a website [2] designed to engage the Agent- Based Modelling (ABM) community in a bid to establish a CCP in ABM. The key component of the site is the collaborative document review system that allowed registered supporters to review the latest version of the Statement of Needs document and provide targeted feedback on individual page elements. While the bid was not successful, we view the website as a success with over 60 academicians and industry players registering their support for the proposal and over 30 statements of support published. Based on 46 contributions by supporters, seven major revisions were made to the Statement of Needs document before it was submitted to EPSRC. This report describes the design and implementation of the web application which was written in Python using the Django Web Framework [3]. Using such a framework enabled rapid development; the whole system was designed, developed and launched within weeks. The website itself is easily deployable and can be customised or extended to support future activities with similar customer engagement needs. In addition, the document review component has since been refactored as an isolated pluggable application for Django and published as open source [4]. 2 Brief Introduction to Django Django is high-level python web application framework originally developed for the fast-paced environment of a newsroom. It was designed to simplify and accelerate the creation of complex data-driven websites by automating and encapsulating many aspects of web projects such as database interactions, authentication, internationalisation, and administration. It emphasises clean design and reusability allowing standalone features such as forums, comment management, wiki, etc -- to be isolated as pluggable components that can be reused in other projects. Django follows the model-view-controller [5] architectural pattern where the data models, application logic and user interface are isolated allowing for independent development, testing and maintenance. 2.1 Data model Django comes with an Object-Relational Mapper (ORM) [6] which hides away the complexity of interacting with the database. The rich data-model syntax provides a simple way for developers to represent their model. The described model is automatically converted at run-time to a set of model-specific APIs for interacting with the database, providing a simple and consistent interface to the various databases support by Django 1. For example, to create a data model for storing articles and linking them to specific authors the following definition can be used: class Reporter ( models. Model ): 1 Django currently supports PostgreSQL, MySQL, sqlite3 and Oracle databases. 1
6 name = models. CharField ( max_ length =70) class Article ( models. Model ): content = models. TextField () headline = models. CharField ( max_ length =200) pub_ date = models. DateTimeField () reporter = models. ForeignKey ( Reporter ) When the application is first initialised the corresponding tables will be created in the assigned database. No SQL knowledge is required of the developer. In addition, a suite of APIs are generate at run time which allows users to interact with the data using standard python idioms. For example: # Get data for reporter -- M a l c o l m Raynold? r = Reporter. objects. get ( name exact =" Malcolm Raynold ") # print all headlines for articles written by that reporter for article in r. article_ set. all (): print article. headlines # Create a new article, assign it to that reporter a = Article ( content =" The article content ", headline =" short and sweet ", pub_date = datetime. now (), reporter =r) a. save () # write to database Once the data model is written, a data administration site can be automatically generated to allow data entry to begin even before the other components are ready. This interface can be customised and extended to form the administrative backend of the website. Figure 1: Recommended workflow for transforming source code 2.2 Application Logic The functionality of a web component is written as standard Python functions which are called when an associated URL is requested. Instead of the traditional method where each web address corresponds to a path within the file system, Django employs an elegant URL mapping scheme which uses Regular Expressions [7] to match web addresses to functions. For example: 2
7 # in the urls. py file urlpatterns = patterns ( y o u r _ a p p. v i e w s, (r"^ article /(?P<art_id >\d+)/ $", " show_article "), (r"^ reporter /(?P<rep_id >\d+)/ $", " articles_by_reporter "), ) When the web address is accessed, this matches the first pattern in the list resulting in the show article function being used for handling that request. The art id variable captured from the web address is passed on the function as an argument. The function itself would look like this: def show_ article ( request, art_id ): a = get_ object_ or_ 404 ( Article, id = art_id ) # get article with that id return render_to_response (" templates / show_article. html ", {" article ":a}) Note that at this level no HTML scripting is done. The functions simply queries the data model, performs any intermediate processing if required, then renders the user interface using a templating engine. 2.3 User Interface (templates) The actual web pages that end users see are rendered dynamically based on template files which can be designed independent of the application logic and data models. Template files are generally standard HTML files which some additional markups called template tags. Template tags allow data passed in during the rendering stage to be inserted into the page. I also supports operations such as loops, if/else conditions, filter operations to transform data, etc. Custom tags can also be easily written to further customised the way data can be processed and displayed. The templating engine supports template inheritance whereby one template can inherit the contents of a parent template, changing only what is necessary. In practice this feature allows the site layout to be defined in a parent template which all other templates use as a base. This allows for templates which are succinct and have minimal repetitions thus simplifying updates and maintenance. <!-- File : templates / show_article. html ( Extends base / site_layout. html ) --> {% extends " base / site_layout. html " %} <!-- we just need to define the contents section --> {% block " content " %} <h1 >{{ article. headlines }} </h1 > <div class =" byline ">By {{ article. reporter. full_name }} </ div > <div class =" article - body " >{{ article. content }} </ div > {% end block %} 3 The Collaborative Document Review Component 3.1 Requirements The collaborative document review system was designed with the following requirements in mind: The document can be easily modified and published by multiple authors 3
8 Users can provide feedback on specific elements in the document Authors can acknowledge comments posted by users and respond to the comments 3.2 Document Data Format Selecting a suitable document format was a key design decision as it affects the implementation complexity and impacts the workflow of document authors. Using a format supported by common document editors (such as *.doc or *.odt) makes it easy for authors to create and edit the document on their desktops, but would make online updating and parsing a nightmare. A plain text format on the other hand would be easy to parse and can be edited online or offline in a text editor, but at the cost of limiting formatting options. The format eventually chosen for the job was Markdown [8] which is essentially plain text with special formatting syntax. Text written in Markdown can be translated to HTML using a markdown engine. The advantages are: The formatting syntax are non-intrusive so the text file itself is very readable even before it is rendered to HTML Plain text can be easily edited using existing desktop applications or an online editor Markdown text are easily diff -able making it easy to compare one version to another Markdown generates clean HTML making it readily parseable using existing tools Django comes with support for Markdown (as well as other comparable formats such as Textile and rest ) [9] The following is an example of a text formatted using Markdown: This is a first level heading A paragraph is one or more consecutive lines of text separated by one or more blank lines. Si * Bulleted lists can be created too * This is another item in the list * Yet another item 3.3 Online Editor For our online editor, the document is entered using Markdown in a standard text box. A preview of the parsed document is displayed next to the text box to give authors an idea of the final output. Figure 2 shows the document editor that was used in the website. It is also possible to include third-party components (such as Markitup [10]) to produce a much fancier online editor. For example, Figure 3 shows the editor that is used in the example project included in the open source release. 3.4 Document Parsing and Decomposition In order to assign comments to individual elements in the document, we need to parse the document and demarcate each element. 4
9 Figure 2: Online document editor with preview window Figure 3: A fancier online editor used in the open source version of doccomment Once the document is translated to HTML, we use the excellent BeautifulSoup [11] library to parse the document and split it into a list of top-level elements. The code achieve this is trivial. The following function takes in a string representation of the document and returns an array (or list in Python parlance) of HTML elements. The returned elements can be readily printed as a page snippet, or printed in turn to form the full page. from markdown import markdown from BeautifulSoup import BeautifulSoup, Tag def markdown_ to_ html_ elements ( text ): " Returns a list of HTML strings, encoded I unicode " soup = BeautifulSoup ( markdown ( text )) return [ unicode ( e) for e in soup. contents if type ( e) == Tag ] 3.5 Data Model Figure 4 shows a simplified diagram of the data model used in the application. For the sake of brevity and clarity, some fields have been renamed or left out. Document the Document model stores the representation of a document. It stores the title 5
10 Figure 4: Simplified data model for DocComment and document text as entered in the most recent update, as well as other metadata such as the dates of creation/modification, publication status, modification status, etc. DocumentVersion this model stores a snapshot of the document each time it is published. The title and document text are store for that version along with the publication date and version string (in the form of <major>.<minor>.<revision> ). To improve performance in exchange for larger storage requirements, a pre-rendered version of the document can also be stored. DocumentElement during the publication process, the rendered document is broken down into separate page elements and stored as a DocumentElement. This data is associated with a DocumentVersion entry and is used as a placeholder to link comments to specific elements within the document. A copy of the rendered text is stored so that it can be used to give context to a comment listing page. DocumentComment comments posted for each document element are stored using the DocumentComment model. This model stores the comment text and date, and is associated with a specific user and document element. The acknowledgement field is a Boolean field used to indicate whether the document author has read and acknowledged that comment. This field can be extended further to include different modes of acknowledgment such as accepted, will consider, or rejected. 3.6 Contextual Comment UI The design goal for the commenting user interface was one that is non-cluttering, intuitive, and practical. To achieve these goals, we drew inspiration from the Django Book website [12]. It uses a combination of AJAX and CSS to position the commenting interface unobtrusively as a sidebar that blends into the page and only shows up when the mouse cursor hovers over. We managed to achieve a similar effect using CSS knowledge gleaned from the Django book website, and using the jquery [13] library to simplify tasks that requires javascript and AJAX. 6
11 Figure 5: The commenting UI only shows up when the mouse hovers over a page element. The associated text is highlighted. Figure 6: Elements that are commented on will have a speech bubble showing the number of comments Figure 7: Clicking on the speech bubble will display the list of comments 7
12 4 Miscellaneous Issues 4.1 Spam Control To avoid getting swamped by irrelevant posts from automated spam engines, we decided to allow postings only from registered users. This meant that we could concentrate on gate-keeping the user registration process in order to limit spam on the site. Registration on the site is implemented as a two stage process: 1. Prospective users fill out a form along with their details and address 2. An is sent to the given address with an encoded key and instructions on how to activate their account This process ensures that only registrations with validated addresses are allowed. The site administrators have access to a list of registration that failed; this information is used to manually activate applications (followed by an ) in the case of typos in their addresses, or to improve the spam detection feature in the case of actual spam. A common approach to reduce spam posted in forms is to use a CAPTCHA [14] system to identify and filter out automated bots. However, we find this approach rather annoying and attempted a less obtrusive method. To detect automated bots that scour the internet in search for form-driven sites to terrorise, we made the following assumptions about bots: They do not run a full blown web browser and therefore may not have javascript support. They rely on standard field names to guess how a form should be filled. They sometimes harvest details of forms in advance and only attempt submissions later on. Conversely, they may respond immediately, possibly faster than a mortal can. Based on these assumptions, we implemented a combination of the following techniques: Honeypot the form contains hidden fields that should be left empty. Spam bots that fill in all fields in the form will get rejected. However, some bots may ignore hidden fields and therefore defeat this approach. Javascript check the form contains control fields that are initialised with wrong answers. When the page is loaded, javascript is used to fill in the correct answers and hide the fields from users. Bots without javascript capabilities will submit incorrect control data and get rejected. Users using browsers with javascript disabled will be presented with the control fields, so questions have to be chosen such that it can be easily answered. Encoded data every time a form is rendered it is accompanied by an encoded string that contains information such as the session key, requesters IP address, and timestamp. The encoded data is submitted along with the form, and the decoded can be used for validation. Invalid or incomplete data: form has been tempered with Timestamp: used to detect submissions that took too long or too soon 8
13 Session Key and IP: used to detect submissions from a different session or machine Rejected form submissions are accompanied by a suitable error message and error code. Should the problem persist, users are encouraged to report the problem along with the error code. The error code can be encoded with additional information to help us tweak settings to prevent future false positives. A possible future enhancement would be to fall back to a CAPTCHA system on repeated failures. This would allow users to proceed in the event of false positives. Note that the techniques above would only be effective against bots targeting generic forms; each of the mechanism above can be trivially defeated if targeted specifically. 4.2 caching One issue with dynamically generated web pages is the overhead involved in producing a page for each user request - the request needs to be processed, the database queried, and the response rendered from templates. At high load, this process will require large amounts of resources in terms of processing power, memory, and I/O bandwidth (disk and network). High-traffic sites employ various methods to alleviate the problem, one of which is caching. Content that changes infrequently or used repeatedly can be cached such that it is processed only once and reused for multiple requests. Caching can be done at multiple levels views, page snippets, data objects and one can use different cache replacement strategies depending on the site requirements. In the realms of highly scalable web infrastructure this gets a lot more complicated with techniques like replication, partitioning and fault tolerance coming into play. Cache implementation at that level is of course way beyond our extremely modest requirements. Considering the amount of traffic we anticipate, one can say that our attempts at employing a caching strategy is merely out of academic interest. Even so, one benefit we gained from this effort is that our data-driven site runs efficient off a simple SQLite [15] database. In addition, since data is stored in a single file with no need for a database server, tasks such as backups and deployment are greatly simplified Caching in Django Django comes with a built-in caching framework [16] which provides different levels of cache granularity. Per-site cache Every page is cached unless specified otherwise or if the page has GET or POST parameters. Each page is cached for a specific duration before it is refreshed. Pre-view cache Individual views can be marked for caching. The cache duration will be specified and can be different for each view. Template fragment caching A cache tag can be used to demarcate sections of the template that should be cached. Cache duration and cache key is specified within the tag. Cache API A set of methods which provide low-level access to caching functionality such as the assignment, retrieval and deletion of cache entries. It allows one to designing their own caching strategy. 9
14 Figure 8: Django Debug Toolbar output before caching Figure 9: We can also browse details of each database query The caching mechanism can be configured to use various back ends for storage. This includes databases, memcached [17] servers, in-memory, or as files within a specific directory. Django also provides the facility to insert headers to provide instructions to upstream caches, i.e. web caches that sit between your website and the end user. These can include reverse proxies that can be placed in front of a web server to handle web requests, web proxies and caches hosted by ISPs or internet gateway, and even caches in the users browser Our Approach To avoid premature optimisation, caching is applied incrementally just before the application is ready for deployment. We use the Django Debug Toolbar [18] to profile each page and based on the output determine if caching is required. The toolbar is displayed as an overlay on the existing page provides information such as the time taken to render the page, the number of database requests involved, full listings of database queries and HTTP headers sent, etc. For example, in Figure 8 we see the toolbar displaying the stats for the document display page. 10
15 Figure 10: The same page, with fragments of the template cached It show a total rendering time of over 1100ms (688ms CPU time) with 30ms used to make 50 database queries. This was obviously a very expensive page to render and a prime candidate for caching. In Figure 10, we see the same page after template caching was implemented. Segments of the page that relied on database content were cached in rendered form and the cache is only invalidated when the database entries are updated. Once the cache is primed, it only takes a fraction of the original time to produce (60ms) with only 4 database queries required Caching database queries Apart from caching template fragments, we can also implement caching at the model manager 2 [19] level. This enables the application code to perform database queries in the usual manner which caching performed automatically in the background. A manager that performs caching would be look like this: from django. db. models import Manager from django. core. cache import cache ONE_ WEEK = 60 * 60 * 24 * 7 # in seconds class DocumentManager ( Manager ): def published ( self ): cache_ key = " document_ published " object_list = cache. get ( cache_key ) if object_ list is None : # not in cache # perform actual database query, then cache it object_list = self. get_query_set (). filter ( published = True ) cache. set ( cache_key, object_list, ONE_ WEEK ) return object_ list Assigning a manager to a model is trivial: 2 A manager is the interface through which database query operations are provided to Django models. 11
16 # definition of Document model class Document ( models. Model ): objects = DocumentManager () # assign manager #... model fields... Once the manager is assigned to the Document model, data query can be done as such: # retrieve all documents that are published from models import Document docs = Document. objects. published () The first time that code is called, the cache is still empty so a database query is performed. Subsequent calls will retrieve the data only from the cache and no database access is required. We can ensure that the returned data is valid by clearing that cache entry whenever the associated tables in the database changes. This can be automated using the signal dispatcher [20] in Django to trigger a cache invalidation function whenever the model data is updated. # sample code to delete a series of cache items whenever model data is updated def invalidate_ document_ cache ( sender, instance, signal, * args, ** kwargs ): for key in (" document_published ", " any_other_keys ", ): cache. delete ( key ) # run function whenever a document is created / updated / deleted from django. db. models. signals import post_ save post_ save. connect ( invalidate_ document_ cache, sender = Document ) 4.3 Site Statistics To allow supporters (and proposal reviewers) to track the amount of activity and interest the site generates, we publish values such as the number of registered supporters, volume of activity, and visitor stats. These values are easy to produce but require access to the database and external resources; they are therefore cached for a short period to reduce overheads while still giving reasonably fresh values. 4.4 Visitor Tracking To handle the capturing and reporting of visitor statistics we opted for the Google Analytics [21] service instead of rolling our own. While keeping a simple tally of the number of page views is trivial, there is a lot more to visitor tracking than meets the eye. Among other things, a useful tracking system should provide: Data filtering to ignore hits from web crawlers as well as from specific hosts (such as that of the website administrator and developers) so as not to skew the statistics. Activity tracking determine how long each visitor stays at each page, which pages they visited, how they stumbled upon our page (Referred by another site? From a search engine? Search keyword used?), whether they are a new or returning visitor, and so on. Visitor details more information about the visitor such as their location and ISP/institution (determined from IP address), the type of operation system and browser used, etc. 12
17 Figure 11: Site stats page on the ABM CCP site Figure 12: Overview page within the Google Analytics site 13
18 The Google Analytics service includes a very rich reporting facility which provide a lot more information than we need, as well as a set of APIs [22] which we can use to import specific values for displaying on our site. 5 Conclusion The collaborative document review system as it currently stands is still quite basic with only the bare requirements implemented. Even so, it was enough to convince us of its potential. We believe that such a system will be useful in many situations and it should be developed further to provide a richer environment for future users. The Open Source version is a first step towards achieving that goal. It was written from scratch based on the strengths and pitfalls identified in the project discussed in this document. All the basic functionality is now in place and it is ready for integration into any Django project. That is just the beginning. Many other features have been earmarked for inclusion, including: Revision control More advanced access control and permissions Optional integration with other commenting systems, such as Disqus [23] For those that may find a collaborative document system useful but are not in a position to develop their own Django site, we should consider setting up a hosting site. Registered users on the site would be able to publish their documents for public (or member-only) viewing. Such a system would naturally require some effort to develop and maintain, and can only be attempted if there were sufficient interest (and funding!). 14
19 References [1] Collaborative Computational Projects, [Online] [2] CSE Software Engineering, STFC, Agent-Based Modelling CCP - Community Support Site, [Online] ccp/ [3] Django - the web framework for perfectionists with deadlines, [Online] djangoproject.com/ [4] Chin, Shawn, django-doccomment, GitHub, [Online] django-doccomment [5] Model-View-Controller, Wikipedia, [Online] 80%93view%E2%80%93controller [6] Object-relational mapping, Wikipedia, [Online] Object-relational mapping [7] Regular expression., Wikipedia, [Online] expression [8] Gruber, John, Markdown, Daring Fireball, [Online] projects/markdown/ [9] django.contrib.markup, Django Documentation, [Online] com/en/dev/ref/contrib/markup/ [10] Salvat, Jay, markitup! universal markup jquery editor., [Online] jaysalvat.com/home/ [11] Richardson, Leonard, Beautiful Soup, [Online] BeautifulSoup/ [12] Holovaty, Adrian and Kaplan-Moss, Jacob, The Django Book, [Online] djangobook.com/ [13] Resig, John, jquery, [Online] [14] Carnegie Mellon University, CAPTCHA: Telling Humans and Computers Apart Automatically, [Online] [15] SQLite, [Online] [16] Django s Cache Framework, Django Documentation,[Online] djangoproject.com/en/dev/topics/cache/ [17] Memcached, [Online] [18] Hudson, Rob, django-debug-toolbar, [Online] django-debug-toolbar/ [19] Managers, Django Documentation, [Online] topics/db/managers/ [20] Signals, Django Documentation, [Online] topics/signals/ [21] Google, Google Analytics, [Online] 15
20 [22] Google, Google Analytics for Developers, Google Data Protocol, [Online] google.com/apis/gdata/ [23] Disqus, [Online] 16
Sisense. Product Highlights. www.sisense.com
Sisense Product Highlights Introduction Sisense is a business intelligence solution that simplifies analytics for complex data by offering an end-to-end platform that lets users easily prepare and analyze
DiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
multiple placeholders bound to one definition, 158 page approval not match author/editor rights, 157 problems with, 156 troubleshooting, 156 158
Index A Active Directory Active Directory nested groups, 96 creating user accounts, 67 custom authentication, 66 group members cannot log on, 153 mapping certificates, 65 mapping user to Active Directory
Manage Workflows. Workflows and Workflow Actions
On the Workflows tab of the Cisco Finesse administration console, you can create and manage workflows and workflow actions. Workflows and Workflow Actions, page 1 Add Browser Pop Workflow Action, page
Category: Business Process and Integration Solution for Small Business and the Enterprise
Home About us Contact us Careers Online Resources Site Map Products Demo Center Support Customers Resources News Download Article in PDF Version Download Diagrams in PDF Version Microsoft Partner Conference
CatDV Pro Workgroup Serve r
Architectural Overview CatDV Pro Workgroup Server Square Box Systems Ltd May 2003 The CatDV Pro client application is a standalone desktop application, providing video logging and media cataloging capability
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
Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY
Advanced Web Development Duration: 6 Months SCOPE OF WEB DEVELOPMENT INDUSTRY Web development jobs have taken thе hot seat when it comes to career opportunities and positions as a Web developer, as every
CommonSpot Content Server Version 6.2 Release Notes
CommonSpot Content Server Version 6.2 Release Notes Copyright 1998-2011 PaperThin, Inc. All rights reserved. About this Document CommonSpot version 6.2 updates the recent 6.1 release with: Enhancements
Developing ASP.NET MVC 4 Web Applications
Course M20486 5 Day(s) 30:00 Hours Developing ASP.NET MVC 4 Web Applications Introduction In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools
latest Release 0.2.6
latest Release 0.2.6 August 19, 2015 Contents 1 Installation 3 2 Configuration 5 3 Django Integration 7 4 Stand-Alone Web Client 9 5 Daemon Mode 11 6 IRC Bots 13 7 Bot Events 15 8 Channel Events 17 9
<Insert Picture Here> Oracle SQL Developer 3.0: Overview and New Features
1 Oracle SQL Developer 3.0: Overview and New Features Sue Harper Senior Principal Product Manager The following is intended to outline our general product direction. It is intended
Up and Running with LabVIEW Web Services
Up and Running with LabVIEW Web Services July 7, 2014 Jon McBee Bloomy Controls, Inc. LabVIEW Web Services were introduced in LabVIEW 8.6 and provide a standard way to interact with an application over
LoadRunner and Performance Center v11.52 Technical Awareness Webinar Training
LoadRunner and Performance Center v11.52 Technical Awareness Webinar Training Tony Wong 1 Copyright Copyright 2012 2012 Hewlett-Packard Development Development Company, Company, L.P. The L.P. information
Cache Configuration Reference
Sitecore CMS 6.2 Cache Configuration Reference Rev: 2009-11-20 Sitecore CMS 6.2 Cache Configuration Reference Tips and Techniques for Administrators and Developers Table of Contents Chapter 1 Introduction...
Software Development Kit
Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice
PROJECT REPORT OF BUILDING COURSE MANAGEMENT SYSTEM BY DJANGO FRAMEWORK
PROJECT REPORT OF BUILDING COURSE MANAGEMENT SYSTEM BY DJANGO FRAMEWORK by Yiran Zhou a Report submitted in partial fulfillment of the requirements for the SFU-ZU dual degree of Bachelor of Science in
OpenText Information Hub (ihub) 3.1 and 3.1.1
OpenText Information Hub (ihub) 3.1 and 3.1.1 OpenText Information Hub (ihub) 3.1.1 meets the growing demand for analytics-powered applications that deliver data and empower employees and customers to
GUI and Web Programming
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program
Visualizing a Neo4j Graph Database with KeyLines
Visualizing a Neo4j Graph Database with KeyLines Introduction 2! What is a graph database? 2! What is Neo4j? 2! Why visualize Neo4j? 3! Visualization Architecture 4! Benefits of the KeyLines/Neo4j architecture
InfoView User s Guide. BusinessObjects Enterprise XI Release 2
BusinessObjects Enterprise XI Release 2 InfoView User s Guide BusinessObjects Enterprise XI Release 2 Patents Trademarks Copyright Third-party contributors Business Objects owns the following U.S. patents,
DreamFactory & Modus Create Case Study
DreamFactory & Modus Create Case Study By Michael Schwartz Modus Create April 1, 2013 Introduction DreamFactory partnered with Modus Create to port and enhance an existing address book application created
SelectSurvey.NET User Manual
SelectSurvey.NET User Manual Creating Surveys 2 Designing Surveys 2 Templates 3 Libraries 4 Item Types 4 Scored Surveys 5 Page Conditions 5 Piping Answers 6 Previewing Surveys 7 Managing Surveys 7 Survey
Programming Fundamentals of Web Applications Course 10958A; 5 Days
Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc Programming Fundamentals of Web Applications Course 10958A; 5 Days Course
Vector HelpDesk - Administrator s Guide
Vector HelpDesk - Administrator s Guide Vector HelpDesk - Administrator s Guide Configuring and Maintaining Vector HelpDesk version 5.6 Vector HelpDesk - Administrator s Guide Copyright Vector Networks
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
Terms and Definitions for CMS Administrators, Architects, and Developers
Sitecore CMS 6 Glossary Rev. 081028 Sitecore CMS 6 Glossary Terms and Definitions for CMS Administrators, Architects, and Developers Table of Contents Chapter 1 Introduction... 3 1.1 Glossary... 4 Page
An introduction to creating JSF applications in Rational Application Developer Version 8.0
An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create
Developing ASP.NET MVC 4 Web Applications MOC 20486
Developing ASP.NET MVC 4 Web Applications MOC 20486 Course Outline Module 1: Exploring ASP.NET MVC 4 The goal of this module is to outline to the students the components of the Microsoft Web Technologies
HP LoadRunner. Software Version: 11.00. Ajax TruClient Tips & Tricks
HP LoadRunner Software Version: 11.00 Ajax TruClient Tips & Tricks Document Release Date: October 2010 Software Release Date: October 2010 Legal Notices Warranty The only warranties for HP products and
Cloud Administration Guide for Service Cloud. August 2015 E65820-01
Cloud Administration Guide for Service Cloud August 2015 E65820-01 Table of Contents Introduction 4 How does Policy Automation work with Oracle Service Cloud? 4 For Customers 4 For Employees 4 Prerequisites
Glyma Deployment Instructions
Glyma Deployment Instructions Version 0.8 Copyright 2015 Christopher Tomich and Paul Culmsee and Peter Chow Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
Data Driven Success. Comparing Log Analytics Tools: Flowerfire s Sawmill vs. Google Analytics (GA)
Data Driven Success Comparing Log Analytics Tools: Flowerfire s Sawmill vs. Google Analytics (GA) In business, data is everything. Regardless of the products or services you sell or the systems you support,
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
The Django web development framework for the Python-aware
The Django web development framework for the Python-aware Bill Freeman PySIG NH September 23, 2010 Bill Freeman (PySIG NH) Introduction to Django September 23, 2010 1 / 18 Introduction Django is a web
MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC
MyOra 3.0 SQL Tool for Oracle User Guide Jayam Systems, LLC Contents Features... 4 Connecting to the Database... 5 Login... 5 Login History... 6 Connection Indicator... 6 Closing the Connection... 7 SQL
<Insert Picture Here> Oracle Web Cache 11g Overview
Oracle Web Cache 11g Overview Oracle Web Cache Oracle Web Cache is a secure reverse proxy cache and a compression engine deployed between Browser and HTTP server Browser and Content
Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia
Simple Tips to Improve Drupal Performance: No Coding Required By Erik Webb, Senior Technical Consultant, Acquia Table of Contents Introduction................................................ 3 Types of
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
Performance in the Infragistics WebDataGrid for Microsoft ASP.NET AJAX. Contents. Performance and User Experience... 2
Performance in the Infragistics WebDataGrid for Microsoft ASP.NET AJAX An Infragistics Whitepaper Contents Performance and User Experience... 2 Exceptional Performance Best Practices... 2 Testing the WebDataGrid...
Analytics Configuration Reference
Sitecore Online Marketing Suite 1 Analytics Configuration Reference Rev: 2009-10-26 Sitecore Online Marketing Suite 1 Analytics Configuration Reference A Conceptual Overview for Developers and Administrators
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun ([email protected]) Sudha Piddaparti ([email protected]) Objective In this
A Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad OpenDemand Systems, Inc. Abstract / Executive Summary As Web applications and services become more complex, it becomes increasingly difficult
Shipbeat Magento Module. Installation and user guide
Shipbeat Magento Module Installation and user guide This guide explains how the Shipbeat Magento Module is installed, used and uninstalled from your Magento Community Store. If you have questions or need
Elgg 1.8 Social Networking
Elgg 1.8 Social Networking Create, customize, and deploy your very networking site with Elgg own social Cash Costello PACKT PUBLISHING open source* community experience distilled - BIRMINGHAM MUMBAI Preface
Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask
Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates
General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support
General principles and architecture of Adlib and Adlib API Petra Otten Manager Customer Support Adlib Database management program, mainly for libraries, museums and archives 1600 customers in app. 30 countries
Jet Data Manager 2012 User Guide
Jet Data Manager 2012 User Guide Welcome This documentation provides descriptions of the concepts and features of the Jet Data Manager and how to use with them. With the Jet Data Manager you can transform
Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led
Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
System Requirement Specification for A Distributed Desktop Search and Document Sharing Tool for Local Area Networks
System Requirement Specification for A Distributed Desktop Search and Document Sharing Tool for Local Area Networks OnurSoft Onur Tolga Şehitoğlu November 10, 2012 v1.0 Contents 1 Introduction 3 1.1 Purpose..............................
EECS 398 Project 2: Classic Web Vulnerabilities
EECS 398 Project 2: Classic Web Vulnerabilities Revision History 3.0 (October 27, 2009) Revise CSRF attacks 1 and 2 to make them possible to complete within the constraints of the project. Clarify that
Drupal CMS for marketing sites
Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit
5 Mistakes to Avoid on Your Drupal Website
5 Mistakes to Avoid on Your Drupal Website Table of Contents Introduction.... 3 Architecture: Content.... 4 Architecture: Display... 5 Architecture: Site or Functionality.... 6 Security.... 8 Performance...
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR Andrey V.Lyamin, State University of IT, Mechanics and Optics St. Petersburg, Russia Oleg E.Vashenkov, State University of IT, Mechanics and Optics, St.Petersburg,
XMailer Reference Guide
XMailer Reference Guide Version 7.00 Wizcon Systems SAS Information in this document is subject to change without notice. SyTech assumes no responsibility for any errors or omissions that may be in this
Configuring the JEvents Component
Configuring the JEvents Component The JEvents Control Panel's Configuration button takes you to the JEvents Global Configuration page. Here, you may set a very wide array of values that control the way
Framework as a master tool in modern web development
Framework as a master tool in modern web development PETR DO, VOJTECH ONDRYHAL Communication and Information Systems Department University of Defence Kounicova 65, Brno, 662 10 CZECH REPUBLIC [email protected],
Chapter 15: Forms. User Guide. 1 P a g e
User Guide Chapter 15 Forms Engine 1 P a g e Table of Contents Introduction... 3 Form Building Basics... 4 1) About Form Templates... 4 2) About Form Instances... 4 Key Information... 4 Accessing the Form
IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, 2015. Integration Guide IBM
IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, 2015 Integration Guide IBM Note Before using this information and the product it supports, read the information in Notices on page 93.
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
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
Site Configuration Mobile Entrée 4
Table of Contents Table of Contents... 1 SharePoint Content Installed by ME... 3 Mobile Entrée Base Feature... 3 Mobile PerformancePoint Application Feature... 3 Mobile Entrée My Sites Feature... 3 Site
Web Application Guidelines
Web Application Guidelines Web applications have become one of the most important topics in the security field. This is for several reasons: It can be simple for anyone to create working code without security
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
Project 2: Web Security Pitfalls
EECS 388 September 19, 2014 Intro to Computer Security Project 2: Web Security Pitfalls Project 2: Web Security Pitfalls This project is due on Thursday, October 9 at 6 p.m. and counts for 8% of your course
Integrity Checking and Monitoring of Files on the CASTOR Disk Servers
Integrity Checking and Monitoring of Files on the CASTOR Disk Servers Author: Hallgeir Lien CERN openlab 17/8/2011 Contents CONTENTS 1 Introduction 4 1.1 Background...........................................
Oracle Application Development Framework Overview
An Oracle White Paper June 2011 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services
LifeSize UVC Access Deployment Guide
LifeSize UVC Access Deployment Guide November 2013 LifeSize UVC Access Deployment Guide 2 LifeSize UVC Access LifeSize UVC Access is a standalone H.323 gatekeeper that provides services such as address
The following multiple-choice post-course assessment will evaluate your knowledge of the skills and concepts taught in Internet Business Associate.
Course Assessment Answers-1 Course Assessment The following multiple-choice post-course assessment will evaluate your knowledge of the skills and concepts taught in Internet Business Associate. 1. A person
Customization & Enhancement Guide. Table of Contents. Index Page. Using This Document
Customization & Enhancement Guide Table of Contents Using This Document This document provides information about using, installing and configuring FTP Attachments applications provided by Enzigma. It also
Your Blueprint websites Content Management System (CMS).
Your Blueprint websites Content Management System (CMS). Your Blueprint website comes with its own content management system (CMS) so that you can make your site your own. It is simple to use and allows
EMAIL MARKETING MODULE OVERVIEW ENGINEERED FOR ENGAGEMENT
PLATFORM PEOPLE STRATEGY EMAIL MARKETING MODULE OVERVIEW ENGINEERED FOR ENGAGEMENT Contents p1 E-Newsletter Overview p2 E-Newsletter Sample p3 Forward Article p4 p5 p6 p7 Print Article Read More Subscription
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
Installing and Sending with DocuSign for NetSuite v2.2
DocuSign Quick Start Guide Installing and Sending with DocuSign for NetSuite v2.2 This guide provides information on installing and sending documents for signature with DocuSign for NetSuite. It also includes
Drupal Performance Tuning
Drupal Performance Tuning By Jeremy Zerr Website: http://www.jeremyzerr.com @jrzerr http://www.linkedin.com/in/jrzerr Overview Basics of Web App Systems Architecture General Web
Qlik REST Connector Installation and User Guide
Qlik REST Connector Installation and User Guide Qlik REST Connector Version 1.0 Newton, Massachusetts, November 2015 Authored by QlikTech International AB Copyright QlikTech International AB 2015, All
Nintex Workflow 2013 Help
Nintex Workflow 2013 Help Last updated: Wednesday, January 15, 2014 1 Workflow Actions... 7 1.1 Action Set... 7 1.2 Add User To AD Group... 8 1.3 Assign Flexi Task... 10 1.4 Assign To-Do Task... 25 1.5
Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.
Web Frameworks web development done right Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.ssa Anna Corazza Outline 2 Web technologies evolution Web frameworks Design Principles
Page Editor Recommended Practices for Developers
Page Editor Recommended Practices for Developers Rev: 7 July 2014 Sitecore CMS 7 and later Page Editor Recommended Practices for Developers A Guide to Building for the Page Editor and Improving the Editor
http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx
ASP.NET Overview.NET Framework 4 ASP.NET is a unified Web development model that includes the services necessary for you to build enterprise-class Web applications with a minimum of coding. ASP.NET is
Log Analyzer Reference
IceWarp Unified Communications Log Analyzer Reference Version 10.4 Printed on 27 February, 2012 Contents Log Analyzer 1 Quick Start... 2 Required Steps... 2 Optional Steps... 3 Advanced Configuration...
SiteCelerate white paper
SiteCelerate white paper Arahe Solutions SITECELERATE OVERVIEW As enterprises increases their investment in Web applications, Portal and websites and as usage of these applications increase, performance
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports $Q2UDFOH7HFKQLFDO:KLWHSDSHU )HEUXDU\ Secure Web.Show_Document() calls to Oracle Reports Introduction...3 Using Web.Show_Document
WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT
CHAPTER 1 WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT SharePoint 2013 introduces new and improved features for web content management that simplify how we design Internet sites and enhance the
LifeSize UVC Video Center Deployment Guide
LifeSize UVC Video Center Deployment Guide November 2013 LifeSize UVC Video Center Deployment Guide 2 LifeSize UVC Video Center LifeSize UVC Video Center records and streams video sent by LifeSize video
Microsoft Office System Tip Sheet
The 2007 Microsoft Office System The 2007 Microsoft Office system is a complete set of desktop and server software that can help streamline the way you and your people do business. This latest release
www.novell.com/documentation Jobs Guide Identity Manager 4.0.1 February 10, 2012
www.novell.com/documentation Jobs Guide Identity Manager 4.0.1 February 10, 2012 Legal Notices Novell, Inc. makes no representations or warranties with respect to the contents or use of this documentation,
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP
CS169.1x Lecture 5: SaaS Architecture and Introduction to Rails " Fall 2012"
CS169.1x Lecture 5: SaaS Architecture and Introduction to Rails " Fall 2012" 1" Web at 100,000 feet" The web is a client/server architecture" It is fundamentally request/reply oriented" Web browser Internet
Big Data Analytics in LinkedIn. Danielle Aring & William Merritt
Big Data Analytics in LinkedIn by Danielle Aring & William Merritt 2 Brief History of LinkedIn - Launched in 2003 by Reid Hoffman (https://ourstory.linkedin.com/) - 2005: Introduced first business lines
Web Development I & II*
Web Development I & II* Career Cluster Information Technology Course Code 10161 Prerequisite(s) Computer Applications Introduction to Information Technology (recommended) Computer Information Technology
High Level Design Distributed Network Traffic Controller
High Level Design Distributed Network Traffic Controller Revision Number: 1.0 Last date of revision: 2/2/05 22c:198 Johnson, Chadwick Hugh Change Record Revision Date Author Changes 1 Contents 1. Introduction
Building and Using Web Services With JDeveloper 11g
Building and Using Web Services With JDeveloper 11g Purpose In this tutorial, you create a series of simple web service scenarios in JDeveloper. This is intended as a light introduction to some of the
