<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aagarwa6</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aagarwa6"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Aagarwa6"/>
	<updated>2026-09-30T08:47:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80951</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80951"/>
		<updated>2013-10-30T18:16:39Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&amp;lt;ref&amp;gt;Tressel, Pat, Fran Boon, Shikhar Kohli, Dominic Koenig, Belinda Lopez, Eli Lev, Michael Howden, and Anne Goldenberg(2011, October) ''Sahana Eden'' Lulu.com, Retrieved from  &amp;lt;http://en.flossmanuals.net/sahana-eden/index/&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Configuration - Twitter ==&lt;br /&gt;
The Sahana Eden’s social media feeds requires the user to configure the twitter settings. This is done by providing the twitter login ID, and the OAuth credentials in the Twitter Settings page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;SCREENSHOT COMES HERE&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The twitter search results for the search queries can be found in the Twitter Search Results page. The search filters on the Results page allow searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: [[File:New-tweeted-by.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[File:New-tweetedby.png]]&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
The Reports page generates Reports based on date filters and &amp;quot;tweeted by&amp;quot;. The report contains the total number of records, search queries, Tweeted on and language that can further be grouped by search query, tweeted on or language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report2.png]]&lt;br /&gt;
&lt;br /&gt;
== Further Work (wrt to OSS Final Project) ==&lt;br /&gt;
The further work in the OSS project is listed below: &lt;br /&gt;
*Integration with Parsers&lt;br /&gt;
*rewire the 'parse_twitter' Parser&lt;br /&gt;
*Run Parsers on the list&lt;br /&gt;
*Extract Documents Parser&lt;br /&gt;
*Parser should run on any Message&lt;br /&gt;
*Parser should read attachments&lt;br /&gt;
*Parser should add all URLs as documents&lt;br /&gt;
*Parser should parse link types to see if there are Images&lt;br /&gt;
*optionally parser should be able to download linked images/documents into local store&lt;br /&gt;
*Train these parsers&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
The Sahana Eden Foundation developed for Disaster Management provides a web platform to provide solution for the relief effort. The project provides a solution to manage organizations, people, projects, inventory and assets as well as collecting information through assessments and providing situational awareness through maps.&lt;br /&gt;
Hence, enhancing the searches and reports will help more people in Disaster Management.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* All references and further reading links are in the APA6 style&lt;br /&gt;
* All the content on this page is from websites that have a Attribution-NonCommercial-NoDerivs 3.0 or similar license that allows us to use their content.&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80936</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80936"/>
		<updated>2013-10-30T18:11:52Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Further Work (wrt to OSS Final Project) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&amp;lt;ref&amp;gt;Tressel, Pat, Fran Boon, Shikhar Kohli, Dominic Koenig, Belinda Lopez, Eli Lev, Michael Howden, and Anne Goldenberg(2011, October) ''Sahana Eden'' Lulu.com, Retrieved from  &amp;lt;http://en.flossmanuals.net/sahana-eden/index/&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Configuration - Twitter ==&lt;br /&gt;
The Sahana Eden’s social media feeds requires the user to configure the twitter settings. This is done by providing the twitter login ID, and the OAuth credentials in the Twitter Settings page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;SCREENSHOT COMES HERE&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The twitter search results for the search queries can be found in the Twitter Search Results page. The search filters on the Results page allow searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: [[File:New-tweeted-by.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[File:New-tweetedby.png]]&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
The Reports page generates Reports based on date filters and &amp;quot;tweeted by&amp;quot;. The report contains the total number of records, search queries, Tweeted on and language that can further be grouped by search query, tweeted on or language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report2.png]]&lt;br /&gt;
&lt;br /&gt;
== Further Work (wrt to OSS Final Project) ==&lt;br /&gt;
The further work in the OSS project is listed below: &lt;br /&gt;
*Integration with Parsers&lt;br /&gt;
*rewire the 'parse_twitter' Parser&lt;br /&gt;
*Run Parsers on the list&lt;br /&gt;
*Extract Documents Parser&lt;br /&gt;
*Parser should run on any Message&lt;br /&gt;
*Parser should read attachments&lt;br /&gt;
*Parser should add all URLs as documents&lt;br /&gt;
*Parser should parse link types to see if there are Images&lt;br /&gt;
*optionally parser should be able to download linked images/documents into local store&lt;br /&gt;
*Train these parsers&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* All references and further reading links are in the APA6 style&lt;br /&gt;
* All the content on this page is from websites that have a Attribution-NonCommercial-NoDerivs 3.0 or similar license that allows us to use their content.&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80928</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80928"/>
		<updated>2013-10-30T18:01:19Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Further Work (wrt to OSS Final Project) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&amp;lt;ref&amp;gt;Tressel, Pat, Fran Boon, Shikhar Kohli, Dominic Koenig, Belinda Lopez, Eli Lev, Michael Howden, and Anne Goldenberg(2011, October) ''Sahana Eden'' Lulu.com, Retrieved from  &amp;lt;http://en.flossmanuals.net/sahana-eden/index/&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Configuration - Twitter ==&lt;br /&gt;
The Sahana Eden’s social media feeds requires the user to configure the twitter settings. This is done by providing the twitter login ID, and the OAuth credentials in the Twitter Settings page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;SCREENSHOT COMES HERE&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The twitter search results for the search queries can be found in the Twitter Search Results page. The search filters on the Results page allow searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: [[File:New-tweeted-by.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[File:New-tweetedby.png]]&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
The Reports page generates Reports based on date filters and &amp;quot;tweeted by&amp;quot;. The report contains the total number of records, search queries, Tweeted on and language that can further be grouped by search query, tweeted on or language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report2.png]]&lt;br /&gt;
&lt;br /&gt;
== Further Work (wrt to OSS Final Project) ==&lt;br /&gt;
The further work in the project include things like &lt;br /&gt;
*Integration with Parsers&lt;br /&gt;
*rewire the 'parse_twitter' Parser&lt;br /&gt;
*Run Parsers on the list&lt;br /&gt;
*Extract Documents Parser&lt;br /&gt;
*Runs on any Message&lt;br /&gt;
*read attachments&lt;br /&gt;
*Adds all URLs as documents&lt;br /&gt;
*parses link types to see if there are Images (ideally following links as some links aren't direct to the jpg/png)&lt;br /&gt;
*optionally downloads linked images/documents into local store&lt;br /&gt;
*Train these parsers&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* All references and further reading links are in the APA6 style&lt;br /&gt;
* All the content on this page is from websites that have a Attribution-NonCommercial-NoDerivs 3.0 or similar license that allows us to use their content.&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80926</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80926"/>
		<updated>2013-10-30T18:00:41Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Further Work (wrt to OSS Final Project) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&amp;lt;ref&amp;gt;Tressel, Pat, Fran Boon, Shikhar Kohli, Dominic Koenig, Belinda Lopez, Eli Lev, Michael Howden, and Anne Goldenberg(2011, October) ''Sahana Eden'' Lulu.com, Retrieved from  &amp;lt;http://en.flossmanuals.net/sahana-eden/index/&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Configuration - Twitter ==&lt;br /&gt;
The Sahana Eden’s social media feeds requires the user to configure the twitter settings. This is done by providing the twitter login ID, and the OAuth credentials in the Twitter Settings page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;SCREENSHOT COMES HERE&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The twitter search results for the search queries can be found in the Twitter Search Results page. The search filters on the Results page allow searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: [[File:New-tweeted-by.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[File:New-tweetedby.png]]&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
The Reports page generates Reports based on date filters and &amp;quot;tweeted by&amp;quot;. The report contains the total number of records, search queries, Tweeted on and language that can further be grouped by search query, tweeted on or language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report2.png]]&lt;br /&gt;
&lt;br /&gt;
== Further Work (wrt to OSS Final Project) ==&lt;br /&gt;
The further work in the project include things like &lt;br /&gt;
*Integration with Parsers&lt;br /&gt;
*rewire the 'parse_twitter' Parser&lt;br /&gt;
*Run Parsers on the list&lt;br /&gt;
*Extract Documents Parser&lt;br /&gt;
*Runs on any Message&lt;br /&gt;
*read attachments&lt;br /&gt;
*Adds all URLs as documents&lt;br /&gt;
*msg_message a doc_entity? or use link table&lt;br /&gt;
*parses link types to see if there are Images (ideally following links as some links aren't direct to the jpg/png)&lt;br /&gt;
*optionally downloads linked images/documents into local store&lt;br /&gt;
*Train these parsers&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* All references and further reading links are in the APA6 style&lt;br /&gt;
* All the content on this page is from websites that have a Attribution-NonCommercial-NoDerivs 3.0 or similar license that allows us to use their content.&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80911</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80911"/>
		<updated>2013-10-30T17:56:25Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&amp;lt;ref&amp;gt;Tressel, Pat, Fran Boon, Shikhar Kohli, Dominic Koenig, Belinda Lopez, Eli Lev, Michael Howden, and Anne Goldenberg(2011, October) ''Sahana Eden'' Lulu.com, Retrieved from  &amp;lt;http://en.flossmanuals.net/sahana-eden/index/&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Configuration - Twitter ==&lt;br /&gt;
The Sahana Eden’s social media feeds requires the user to configure the twitter settings. This is done by providing the twitter login ID, and the OAuth credentials in the Twitter Settings page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;SCREENSHOT COMES HERE&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The twitter search results for the search queries can be found in the Twitter Search Results page. The search filters on the Results page allow searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: [[File:New-tweeted-by.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[File:New-tweetedby.png]]&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
The Reports page generates Reports based on date filters and &amp;quot;tweeted by&amp;quot;. The report contains the total number of records, search queries, Tweeted on and language that can further be grouped by search query, tweeted on or language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report2.png]]&lt;br /&gt;
&lt;br /&gt;
== Further Work (wrt to OSS Final Project) ==&lt;br /&gt;
*Run Parsers on the list&lt;br /&gt;
*Extract Documents Parser&lt;br /&gt;
	*Runs on any Message&lt;br /&gt;
	*Can read attachments?&lt;br /&gt;
	*Adds all URLs as documents&lt;br /&gt;
	*msg_message a doc_entity? or use link table&lt;br /&gt;
	*parses link types to see if there are Images (ideally following links as some links aren't direct to the jpg/png)&lt;br /&gt;
	*optionally downloads linked images/documents into local store&lt;br /&gt;
	*Train these parsers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* All references and further reading links are in the APA6 style&lt;br /&gt;
* All the content on this page is from websites that have a Attribution-NonCommercial-NoDerivs 3.0 or similar license that allows us to use their content.&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80902</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80902"/>
		<updated>2013-10-30T17:54:26Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Further Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&amp;lt;ref&amp;gt;Tressel, Pat, Fran Boon, Shikhar Kohli, Dominic Koenig, Belinda Lopez, Eli Lev, Michael Howden, and Anne Goldenberg(2011, October) ''Sahana Eden'' Lulu.com, Retrieved from  &amp;lt;http://en.flossmanuals.net/sahana-eden/index/&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Configuration - Twitter ==&lt;br /&gt;
The Sahana Eden’s social media feeds requires the user to configure the twitter settings. This is done by providing the twitter login ID, and the OAuth credentials in the Twitter Settings page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;SCREENSHOT COMES HERE&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The twitter search results for the search queries can be found in the Twitter Search Results page. The search filters on the Results page allow searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: [[File:New-tweeted-by.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[File:New-tweetedby.png]]&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
The Reports page generates Reports based on date filters and &amp;quot;tweeted by&amp;quot;. The report contains the total number of records, search queries, Tweeted on and language that can further be grouped by search query, tweeted on or language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[[ File:Report2.png]]&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* All references and further reading links are in the APA6 style&lt;br /&gt;
* All the content on this page is from websites that have a Attribution-NonCommercial-NoDerivs 3.0 or similar license that allows us to use their content.&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80745</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80745"/>
		<updated>2013-10-30T15:16:52Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Confgiuration - Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Configuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80744</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80744"/>
		<updated>2013-10-30T15:02:35Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* S3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.). S3CRUD has filter forms integrated in the standard list view (=multi-record request w/o URL method). Filter forms can be rendered by any method handler. Since filter forms will never be submitted, the method handler does not need to handle any subsequent POSTs related to the filter form, but just insert the filter form HTML into the page.&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80743</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80743"/>
		<updated>2013-10-30T15:00:55Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* S3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.).&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The functions like list,count,sun and avg have been tested so far.&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80742</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80742"/>
		<updated>2013-10-30T14:59:38Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* S3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework includes pre configured Filters and Reports that allow the data analysis and report generation a simple task to be performed by directly.&lt;br /&gt;
&lt;br /&gt;
S3 Filter forms allow the user to apply filters to interactive views (e.g. data tables, data lists, reports etc.).&lt;br /&gt;
&lt;br /&gt;
S3 Framework also includes S3Report which is a REST method handler for data analysis. S3Report generates a full page which includes a set of S3Search widgets, a pivot table (a.k.a. contingency table) from S3Resources and graphs based on the Pivot Tables. S3Report responds to the /report URL method. S3Report supports a number of aggregation functions. The following functions have been tested so far:&lt;br /&gt;
Function	Explanation&lt;br /&gt;
list	a comma-separated list of all instance values&lt;br /&gt;
count	the number of instance values&lt;br /&gt;
sum	the sum of all instance values&lt;br /&gt;
avg	the average (mean) of all instance values&lt;br /&gt;
&lt;br /&gt;
Table configurations can contain a report_options item, which is a Storage object. This object is used to configure reports and report options form.&lt;br /&gt;
The rows, cols, facts and aggregate items are lists of available values for the user to select from.&lt;br /&gt;
The defaults property is a Storage object that contains the default values for the report. It can contain a value for rows, cols, fact, aggregate and totals (as described in URL Methods).&lt;br /&gt;
The search property is a list of S3Search widgets that will allow the report to be filtered. If no search property is specified, no filter form will be available.&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80741</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80741"/>
		<updated>2013-10-30T14:53:10Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* S3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
The Sahana Eden framework (S3) is built on Web2Py and It is used for RAD(Papid Application Development) in all the sahana applications. Eden’s custom CRUD framework.&lt;br /&gt;
S3 Framework&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80740</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80740"/>
		<updated>2013-10-30T14:37:47Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Openshift Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed. OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].Making Changes to your Application on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80739</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80739"/>
		<updated>2013-10-30T14:36:06Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Openshift Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [http://en.wikipedia.org/wiki/Git_(software) Git].&lt;br /&gt;
&lt;br /&gt;
OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Making Changes to your Application As a developer on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80738</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80738"/>
		<updated>2013-10-30T14:34:57Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Openshift Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [Git] http://en.wikipedia.org/wiki/Git_(software).&lt;br /&gt;
&lt;br /&gt;
OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
Making Changes to your Application As a developer on OpenShift, you make code changes on your local machine, check those changes in locally, and then &amp;quot;push&amp;quot; those changes to OpenShift. One of the primary advantages of Git is that it does not require a continuous online presence in order to run. You can easily check in (in Git terminology, 'commit') and revert changes locally before deciding to upload those changes to OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80737</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80737"/>
		<updated>2013-10-30T14:30:17Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Openshift Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [Git] http://en.wikipedia.org/wiki/Git_(software).&lt;br /&gt;
&lt;br /&gt;
OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80736</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80736"/>
		<updated>2013-10-30T14:28:41Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Openshift Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
OpenShift is a cloud computing platform which offers &amp;quot;Platform As a Service&amp;quot; cloud. It is based on hosting platform provided by RedHat. It supports Ruby, it is really easy to install and start working on it.  OpenShift takes care of maintaining the services underlying the application and scaling the application as needed.&lt;br /&gt;
&lt;br /&gt;
Since the software is open source, it is available on GitHub. Development can be started after deploying different web applications in different languages on the platform using [Git http://en.wikipedia.org/wiki/Git_(software)].&lt;br /&gt;
&lt;br /&gt;
OpenShift supports web-application frameworks by supporting each language's preferred web-integration API, with no required changes to the actual framework code. web2py works unmodified on OpenShift.&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80735</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80735"/>
		<updated>2013-10-30T14:19:35Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Further Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
*The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
*Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
*Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
*Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
*Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80734</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80734"/>
		<updated>2013-10-30T14:19:09Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Further Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
•	The twitter search is currently hard coded. The search accesses the msg_twitter_search table and use the keywords stored by the user through the eden portal to search and display twitter feeds on the map.&lt;br /&gt;
•	Display the twitter icon for twitter search instead of the usual bubble&lt;br /&gt;
•	Work on twitter links and message which would pop up contents like photos,URL etc.  This work is doing the part within the tweet parsing of following embedded URLs to identify if they're Media would be really useful addition to the parser (there is a commented-out stub).&lt;br /&gt;
•	Create a cron job for searching tweets periodically instead of manual searches as per user’s request.&lt;br /&gt;
•	Current implementation includes integration of Sahana with Twitter. The future enhancements of the eden project includes allow Sahana Eden to be configured to have a Facebook updates in it&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80733</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80733"/>
		<updated>2013-10-30T14:16:13Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* http://en.flossmanuals.net/&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80732</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80732"/>
		<updated>2013-10-30T14:15:07Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Introduction to Eden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
Sahana Eden's modular design allows different pieces of functionality to be enabled and disabled as required providing flexible solutions for changing contexts.&lt;br /&gt;
&lt;br /&gt;
The application can be configured to secure sensitive information, while also making data which needs to be shared available in a variety of different formats including Microsoft Excel and PDF. To ensure that Sahana Eden is accessible to every country, it can be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80731</id>
		<title>CSC/ECE 517 Fall 2013/oss SocialMediaFeeds</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_SocialMediaFeeds&amp;diff=80731"/>
		<updated>2013-10-30T14:13:59Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to Eden ==&lt;br /&gt;
&lt;br /&gt;
Sahana Eden is an Open Source Humanitarian Platform which has been built specifically for Disaster Management,Development, and Environmental Management sectors. It is highly configurable so that it can be used in a wide variety of different contexts and is easy to modify to build custom solutions.&lt;br /&gt;
Sahana Eden can be accessed from the web or locally from a flash drive, allowing it to be used in environments with poor internet. Local &amp;amp; Web versions can be configured to synchronize to allow data to be shared between them. This helps to keep data synchronized to receive updates regularly and help in responding and recovering from disasters more effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
== Framework - Web2py ==&lt;br /&gt;
Web2py is an enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.&amp;lt;ref name=&amp;quot;name&amp;quot;&amp;gt; Massimo Di Pierro, ''Complete Reference Manual, 6th Edition (pre-release)'' Retrieved from &amp;lt;http://www.web2py.com/init/default/documentation&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Features of Web2py: &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt; ===&lt;br /&gt;
web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don't have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.&lt;br /&gt;
* The DAL can also generate function calls for the Google Datastore when running on the Google App Engine. &lt;br /&gt;
* web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer.web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.&lt;br /&gt;
* web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.&lt;br /&gt;
* web2py is open source and released under the LGPL version 3 license.&lt;br /&gt;
&lt;br /&gt;
=== Why Web2Py? &amp;lt;ref name = &amp;quot;name&amp;quot;&amp;gt; web2py.com &amp;lt;/ref&amp;gt;===&lt;br /&gt;
web2py is one of many web application frameworks, but it has compelling and unique features. web2py was originally developed as a teaching tool, with the following primary motivations:&lt;br /&gt;
* Easy for users to learn server-side web development without compromising functionality. For this reason, web2py requires no installation and no configuration, has no dependencies (except for the source code distribution, which requires Python 2.5 and its standard library modules), and exposes most of its functionality via a Web interface, including an Integrated Development Environment with Debugger and database interface.&lt;br /&gt;
* web2py has been stable from day one because it follows a top-down design; i.e., its API was designed before it was implemented. Even as new functionality has been added, web2py has never broken backwards compatibility, and it will not break compatibility when additional functionality is added in the future.&lt;br /&gt;
* web2py proactively addresses the most important security issues which plague many modern web applications, as determined by OWASP[owasp] below.&lt;br /&gt;
* web2py is lightweight. Its core libraries, including the Database Abstraction Layer, the template language, and all the helpers amount to 1.4MB. The entire source code including sample applications and images amounts to 10.4MB.&lt;br /&gt;
* web2py has a small footprint and is very fast. It uses the Rocket[rocket] WSGI web server developed by Timothy Farrell. It is as fast as Apache with mod_wsgi, and supports SSL and IPv6.&lt;br /&gt;
* web2py uses Python syntax for models, controllers, and views, but does not import models and controllers (as all the other Python frameworks do) - instead it executes them. This means that apps can be installed, uninstalled, and modified without having to restart the web server (even in production), and different apps can coexist without their modules interfering with one another.&lt;br /&gt;
* web2py uses a Database Abstraction Layer (DAL) instead of an Object Relational Mapper (ORM). From a conceptual point of view, this means that different database tables are mapped into different instances of one Table class and not into different classes, while records are mapped into instances of one Row class, not into instances of the corresponding table class. From a practical point of view, it means that SQL syntax maps almost one-to-one into DAL syntax, and there is no complex metaclass programming going on under the hood as in popular ORMs, which would add latency.&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
== Openshift Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Confgiuration - Twitter ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Filter ==&lt;br /&gt;
The search filters implemented allows searching of feeds by &amp;quot;Tweeted date&amp;quot; and &amp;quot;Tweeted by&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Twitter Search After Save ==&lt;br /&gt;
&lt;br /&gt;
== Twitter Search Results Report ==&lt;br /&gt;
&lt;br /&gt;
== Further Work ==&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|1}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013&amp;diff=80479</id>
		<title>CSC/ECE 517 Fall 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013&amp;diff=80479"/>
		<updated>2013-10-30T02:54:46Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[ CSC/ECE 517 Fall 2012/ch1 1w23 ph ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w30 nn]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w21 w]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w01 aj]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w24 nv]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w29 rkld]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w25 aras]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w30 ps]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w19 rj]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w18 bs]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w17 pk]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w22 ss]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w12 vn]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w14 st]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w08 cc]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w10 ga ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w26 as ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w27 ma ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w13 aa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w11 sv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w07 d ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w20 gq ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w03 ss ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w28 nm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w02 pp ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1  1w6 zs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1  1w04 y ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w05 st ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w09 hs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w32 av ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w48 x ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w43 av]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w46 ka]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w33 aa]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w35 sa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w39 as ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w31 vm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w43 sm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w44 s ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w47 ka ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w34 fs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w40 ao ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss fmv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss vna ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss paa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss mapFeeds ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ssp ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch2 0e808 nsv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss aoa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss cmh ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ans ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ssv]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E818 mra ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss SocialMediaFeeds ]]&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80178</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80178"/>
		<updated>2013-10-13T02:25:44Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* MapReduce Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval[1].&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rails and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*[1] http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80177</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80177"/>
		<updated>2013-10-13T02:25:32Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Graph Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval[1].&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rails and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*[1] http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80176</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80176"/>
		<updated>2013-10-13T02:25:17Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Document Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval[1].&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rails and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*[1] http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80175</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80175"/>
		<updated>2013-10-13T02:25:02Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Key Value Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval[1].&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rails and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*[1] http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80173</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80173"/>
		<updated>2013-10-10T06:38:09Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* MapReduce Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval[1].&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*[1] http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80172</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80172"/>
		<updated>2013-10-10T06:37:31Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*[1] http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80171</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80171"/>
		<updated>2013-10-10T06:36:21Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80170</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80170"/>
		<updated>2013-10-10T06:34:29Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
Specific references:&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
General References:&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80169</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80169"/>
		<updated>2013-10-10T06:30:36Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
Specific references:&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80168</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80168"/>
		<updated>2013-10-10T06:27:47Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Rais and Redis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80167</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80167"/>
		<updated>2013-10-10T06:27:26Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Rais and Redis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
Redis is a extremely quick, key value data store that allows storage of different data types like strings,lists, hashes and sets.Redis keeps all the data in RAM and it periodially writes to disk providing persistence.&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80166</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80166"/>
		<updated>2013-10-10T06:23:20Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* MapReduce Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&amp;lt;ref&amp;gt;[http://research.google.com/archive/mapreduce-osdi04-slides/index-auto-0004.html Example: Count word occurrences]. Research.google.com. Retrieved on 2013-09-18.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80165</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80165"/>
		<updated>2013-10-10T06:22:09Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Graph Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''[[File:Graph_data_store.jpg]]'''&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80164</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80164"/>
		<updated>2013-10-10T06:21:48Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Graph Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
 '''function''' &lt;br /&gt;
&lt;br /&gt;
[[File:Graph_data_store.jpg]]&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80163</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80163"/>
		<updated>2013-10-10T06:21:15Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* MapReduce Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Graph_data_store.jpg]]&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Example of MapReduce Data Store:&lt;br /&gt;
&lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;map&amp;lt;/u&amp;gt;(String name, String document):&lt;br /&gt;
   ''// name: document name''&lt;br /&gt;
   ''// document: document contents''&lt;br /&gt;
   '''for each''' word w '''in''' document:&lt;br /&gt;
     emit (w, 1)&lt;br /&gt;
 &lt;br /&gt;
 '''function''' &amp;lt;u&amp;gt;reduce&amp;lt;/u&amp;gt;(String word, Iterator partialCounts):&lt;br /&gt;
   ''// word: a word''&lt;br /&gt;
   ''// partialCounts: a list of aggregated partial counts''&lt;br /&gt;
   sum = 0&lt;br /&gt;
   '''for each''' pc '''in''' partialCounts:&lt;br /&gt;
     sum += ParseInt(pc)&lt;br /&gt;
   emit (word, sum)&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80162</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80162"/>
		<updated>2013-10-10T06:13:03Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Graph Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Graph_data_store.jpg]]&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80161</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80161"/>
		<updated>2013-10-10T06:12:30Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Example of Key Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
== MapReduce Data Store: ==&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80160</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80160"/>
		<updated>2013-10-10T06:11:50Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Introduction to Big Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80159</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80159"/>
		<updated>2013-10-10T06:11:32Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Document Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
Example of Document Data Store:&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80158</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80158"/>
		<updated>2013-10-10T06:10:35Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Example of key value data store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Key Value Data Store: ==&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
Example of key value data store is as follow:&lt;br /&gt;
&lt;br /&gt;
you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80157</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80157"/>
		<updated>2013-10-10T06:07:34Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Example of Document Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of key value data store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
&lt;br /&gt;
== Document Data Store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80156</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80156"/>
		<updated>2013-10-10T06:07:09Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Graph Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of key value data store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of Document Data Store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80155</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80155"/>
		<updated>2013-10-10T06:06:27Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Graph Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of key value data store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of Document Data Store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
Example of graph data store can be viewed in the file.&lt;br /&gt;
[[File:graph_data_store.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80154</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80154"/>
		<updated>2013-10-10T06:05:40Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Example of Graph Data Store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of key value data store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of Document Data Store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
== Graph Data Store: ==&lt;br /&gt;
[[File:graph_data_store.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Graph_data_store.jpg&amp;diff=80153</id>
		<title>File:Graph data store.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Graph_data_store.jpg&amp;diff=80153"/>
		<updated>2013-10-10T06:01:12Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: This is an example of Graph Data Store where each node knows its adjacent node. And the nodes can be traversed to search information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an example of Graph Data Store where each node knows its adjacent node. And the nodes can be traversed to search information&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80152</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80152"/>
		<updated>2013-10-10T05:59:20Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Example of document data store: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of key value data store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of Document Data Store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
== Example of Graph Data Store: ==&lt;br /&gt;
[[File:graph_data_store.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Example of Key Data Store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80151</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80151"/>
		<updated>2013-10-10T05:07:11Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Introduction to Big Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of key value data store: ==&lt;br /&gt;
Where you have a key in the left column and a value on the right side.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    Name         Mark &lt;br /&gt;
    Age          20&lt;br /&gt;
    Size         Large&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of document data store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80150</id>
		<title>CSC/ECE 517 Fall 2013/ch1 1w47 ka</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/ch1_1w47_ka&amp;diff=80150"/>
		<updated>2013-10-10T05:04:24Z</updated>

		<summary type="html">&lt;p&gt;Aagarwa6: /* Introduction to Big Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Big Data in Rails applications ==&lt;br /&gt;
&lt;br /&gt;
This wiki discusses the implementation and usage of Ruby on Rails (RoR) for Big Data for its analysis and storage using different technologies.&lt;br /&gt;
&lt;br /&gt;
== Introduction to Big Data ==&lt;br /&gt;
With the increase in data size it becomes difficult to store the data in relational databases and also processing the data becomes very time consuming. Even if it is feasible to store the data on multiple servers, it becomes difficult to visualize the data all together since it is spread over multiple servers and processing time is also very large. Hence there arises a need of storing and retrieving huge amount of data effectively which involves massive parallel processing to fetch a huge amount of data in less time. This process of storing huge amount of data on multiple servers and processing that data which is not possible using traditional database processing techniques is called big data analysis and this collection of large data sets is called big data. &lt;br /&gt;
&lt;br /&gt;
There are number of frameworks which support big data analysis and storage. To name a few we have Redis, Riak, MongoDB, Cassandra, Neo4J and the biggest of all Hadoop. All of them are based on different [http://en.wikipedia.org/wiki/Data_store datastores]. Different types of Data stores are as follows:&lt;br /&gt;
*Key-Value Data Store&lt;br /&gt;
*Document Data Stores&lt;br /&gt;
*Graph Data Stores&lt;br /&gt;
*Map Reduce&lt;br /&gt;
&lt;br /&gt;
Key-Value Data Store is similar to hash table storage where a record is accessed using the key. Hence it is very fast but for complex data it is very difficult to use. Redis and Riak are based on key-value data stores.&lt;br /&gt;
&lt;br /&gt;
Document Data Store is a database which is used for storing, retrieving and managing documents. Each document has a predefined structure and it is uniquely represented by a document key which helps in accessing and storing the document. Each document is similar to a row in relational database. The only difference being each row has a fixed number of attributes(columns) whereas in the documents the number of attributes may be different. MongoDB and Cassandra are document Data stores.&lt;br /&gt;
&lt;br /&gt;
== Example of document data store: ==&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
   name: &amp;quot;larry&amp;quot;&lt;br /&gt;
   unityId: &amp;quot;larryp&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Graph Data Store is a database in which data is represented by nodes and edges. Lookup of elements is possible using pointers to adjacent elements and hence index look-up is not possible. Neo4J uses graph data store.&lt;br /&gt;
&lt;br /&gt;
MapReduce is a program which can be used to retrieve data from a cluster of data nodes using parallel processing. Map() function delegates the work to different data nodes in the cluster and reduce function performs operations on the data retrieved. Hadoop uses the map reduce technology for efficient data storage and retrieval.&lt;br /&gt;
&lt;br /&gt;
== Rails and Riak ==&lt;br /&gt;
Raik is a NoSQL database that was designed manly for speed of retrieval. As the data becomes complex it becomes difficult to store using key value pair. Riak was developed using programming language Erlang, while supporting a variety of additional language drivers such as Python, Java, PHP and Ruby. To use Riak in the application, first Erlang needs to be installed and then riak.&lt;br /&gt;
&lt;br /&gt;
Put&lt;br /&gt;
  gem 'ripple', :git =&amp;gt; 'http://github.com/seancribbs/ripple.git'&lt;br /&gt;
  gem 'curb' &lt;br /&gt;
in the .gemfile of the project and run bundle install.&lt;br /&gt;
&lt;br /&gt;
Next add Ripple into or config/database.yml:&lt;br /&gt;
&lt;br /&gt;
   ripple:&lt;br /&gt;
     development:&lt;br /&gt;
     port: 8098&lt;br /&gt;
     host: localhost&lt;br /&gt;
&lt;br /&gt;
and in all model classes put the following line: &lt;br /&gt;
    require 'ripple'&lt;br /&gt;
    class xyz&lt;br /&gt;
      include Ripple::Document&lt;br /&gt;
      statement x&lt;br /&gt;
      statement y&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
After this start riak by going to &amp;quot;path where riak is stored/bin&amp;quot; and running the riak start command.&lt;br /&gt;
&lt;br /&gt;
Now the riak is running and all the CRUD operations will be successfully performed.&lt;br /&gt;
&lt;br /&gt;
==Rais and Redis ==&lt;br /&gt;
As a first step install redis source and run make command. Then start the rails server using following command: &lt;br /&gt;
  ./redis-server&lt;br /&gt;
&lt;br /&gt;
To use redis install redis gem&lt;br /&gt;
   gem install redis&lt;br /&gt;
&lt;br /&gt;
In the .gemfile put &lt;br /&gt;
   gem 'redis'&lt;br /&gt;
then run bundle install.&lt;br /&gt;
&lt;br /&gt;
Now if the object needs to be saved than a connection object has to be created. For this generate a module as follows:&lt;br /&gt;
 module RedisMod&lt;br /&gt;
  @@redis_connection = Redis.new&lt;br /&gt;
  def self.conn&lt;br /&gt;
    @@redis_connection&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Now in the model class to save a model object we first need to generate a key as redis is a key-value data store. So first gnerate a key and assign the object to be saved to the key and call conn function to save the record as follows:&lt;br /&gt;
&lt;br /&gt;
 def save&lt;br /&gt;
    #make generate key function using the logic you want&lt;br /&gt;
    generate_key unless @key&lt;br /&gt;
    return false unless valid?&lt;br /&gt;
    #  store the key/value pair with @object being the object to be saved.&lt;br /&gt;
    RedisMod.conn[@key] = @object&lt;br /&gt;
    true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==References ==&lt;br /&gt;
*http://www.slideshare.net/vastydeep/ruby-rails-no-sql-and-big-data&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/2/a-quick-redis-key-value-example-for-the-holidays.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2010/7/31/nosql-on-the-cloud-our-first-application.html&lt;br /&gt;
*http://jit.nuance9.com/2010/07/ruby-192-rails-3-riak-and-ripple.html&lt;br /&gt;
*http://www.pikasoft.com/journal/2011/1/9/nosql-next-up-hadoop-and-cloudera.html&lt;br /&gt;
*http://en.wikipedia.org/wiki/Data_store&lt;/div&gt;</summary>
		<author><name>Aagarwa6</name></author>
	</entry>
</feed>