<commit_before>\section{Problem description}

\emph{This is the problem description, as per the customer's request.}

Social networking sites such as Facebook and Twitter have normally been accessed  via a web browser.
Lately mobile versions have become popular, and allow access to context data such as location of
users. We foresee a much greater popularity of mobile and pervasive interfaces to social media in
the coming years.

Arduino\cite{link:arduino} is a platform that allows software to be written in order to construct
hardware prototypes. In this task the students will develop an Arduino-based interface to Facebook.
The information from Facebook will be made available on Arduino displays and the user can interact
with Facebook through Arduino sensors and actuators.

In case Facebook data access shows to be difficult, the students will use Shindig\cite{link:shinding} which 
is an open source implementation of OpenSocial APIs. The service specification is developed in the European project 
SOCIETIES in collaboration with European partners. The students are however expected to innovate and come up 
with new concepts, user interfaces, and service organization.

\section{The context}
In the past few years, social networks have become more and more popular, continuously increasing their userbase.
The project task was to design and develop an open source Android\cite{link:android} framework for allowing quick
and flexible development of wireless Tangible User Interfaces (T.U.I.) for social networks using Arduino.
The product has served both as a proof-of-concept and as a starting point for future software projects.

\section{The customer}
Our customer was SINTEF, represented by Mr. <NAME>.

SINTEF is the largest independent research organisation in Scandinavia \cite{link:sintef}.
It is an independent, non-commercial organisation with their head office in Trondheim. They have approximately 2100 employees, mainly in Trondheim and Oslo.

\section{The team}
The team consisted of seven students from NTNU. About half of the members have worked
together on previous projects and thus shared some teamwork skills and experiences.
Having a properly functioning team where all the skills of each team member are properly
utilized is vital for the success of any project. None of the team members had 
worked for a customer before.

\subsection{Team members}

\begin{itemize}
\item{\anders}\newline
Third year Informatics student at NTNU. Experience with the programming languages Java,
C and C++. Also experience with Arduinos, AVRs and some basic electronics knowledge.

\item{\henrik}\newline
Third year student at NTNU. Main language Java, basic knowledge in 3D and electronic circuits.

\item{\johan}\newline
Third year student at NTNU. Experience with the programming languages Java, C, C++  and
Basic. Worked with AVR microcontrollers in other projects and courses.

\item{\asbjorn}\newline
Second year student on bachelor in computer science at NTNU. Has previously had one year of
introductory psychology which is to be included in the bachelor in computer science.
Experience with Java.

\item{\emanuele}\newline
Third year Computer Science exchange student from Tor Vergata University, Rome.
Experience with Java, C and C++ programming.

\item{\jonas}\newline
Third year student at NTNU. Experience with Java, Python, Lua, PHP, and web standards such as HTML,
CSS and Javascript. Previously worked with media and sound engineering.

\item{\bjornar}\newline
Third year Informatics student at NTNU. Experience with programming in Java, C and C++.
Previously worked with electronics and have basic knowledge about AVR microcontrollers through
own projects.
\end{itemize}

\section{Definitions}

Here we introduce a list of the terms used in this document with a short explanation of their meaning.

\begin{description}
\item[Facebook] Facebook is the biggest social network. It is also the network our libraries primarily focus on.
\item[OpenSocial] OpenSocial\cite{link:opensocial} is an open source standard by Google for a set of API. It's aim is to
provide a common runtime environment for web applications within different social networks. It is supported by networks
such as Orkut, MySpace, LinkedIn and many more. Facebook and Twitter do not support OpenSocial and they both have their
own custom propietary APIs.
\item[Apache] A software foundation focused on open source and community driven software.
\item[Shindig] Shindig is Apache's implementation of the OpenSocial standard.
\item[Android] A operating system based on Linux primarily for mobile devices made by Google.
\item[Arduino] Arduino is a tool for making computers that can sense and control more of the physical world than your
desktop computer. It's an open-source physical computing platform based on a simple microcontroller board, and a development
environment for writing software for the board. \cite{link:arduino}
\item[Product] This project's deliverables: a set of prototypes and Android applications and libraries.
\item[Prototype] An Arduino board, running a custom firmware. It works in conjunction with an Android application
that controls its behaviour and another Android application that fetches the required data from a social network.
\item[Social service] With this term we refer to Android services used to fetch data from a social network.
\item[Android-Arduino applications] With this term we refer to Android applications used to control the behaviour of prorotypes.
\end{description}<commit_msg>Definition for shield. Alphabetized defs.<commit_after>\section{Problem description}

\emph{This is the problem description, as per the customer's request.}

Social networking sites such as Facebook and Twitter have normally been accessed  via a web browser.
Lately mobile versions have become popular, and allow access to context data such as location of
users. We foresee a much greater popularity of mobile and pervasive interfaces to social media in
the coming years.

Arduino\cite{link:arduino} is a platform that allows software to be written in order to construct
hardware prototypes. In this task the students will develop an Arduino-based interface to Facebook.
The information from Facebook will be made available on Arduino displays and the user can interact
with Facebook through Arduino sensors and actuators.

In case Facebook data access shows to be difficult, the students will use Shindig\cite{link:shinding} which 
is an open source implementation of OpenSocial APIs. The service specification is developed in the European project 
SOCIETIES in collaboration with European partners. The students are however expected to innovate and come up 
with new concepts, user interfaces, and service organization.

\section{The context}
In the past few years, social networks have become more and more popular, continuously increasing their userbase.
The project task was to design and develop an open source Android\cite{link:android} framework for allowing quick
and flexible development of wireless Tangible User Interfaces (T.U.I.) for social networks using Arduino.
The product has served both as a proof-of-concept and as a starting point for future software projects.

\section{The customer}
Our customer was SINTEF, represented by Mr. <NAME>.

SINTEF is the largest independent research organisation in Scandinavia \cite{link:sintef}.
It is an independent, non-commercial organisation with their head office in Trondheim. They have approximately 2100 employees, mainly in Trondheim and Oslo.

\section{The team}
The team consisted of seven students from NTNU. About half of the members have worked
together on previous projects and thus shared some teamwork skills and experiences.
Having a properly functioning team where all the skills of each team member are properly
utilized is vital for the success of any project. None of the team members had 
worked for a customer before.

\subsection{Team members}

\begin{itemize}
\item{\anders}\newline
Third year Informatics student at NTNU. Experience with the programming languages Java,
C and C++. Also experience with Arduinos, AVRs and some basic electronics knowledge.

\item{\henrik}\newline
Third year student at NTNU. Main language Java, basic knowledge in 3D and electronic circuits.

\item{\johan}\newline
Third year student at NTNU. Experience with the programming languages Java, C, C++  and
Basic. Worked with AVR microcontrollers in other projects and courses.

\item{\asbjorn}\newline
Second year student on bachelor in computer science at NTNU. Has previously had one year of
introductory psychology which is to be included in the bachelor in computer science.
Experience with Java.

\item{\emanuele}\newline
Third year Computer Science exchange student from Tor Vergata University, Rome.
Experience with Java, C and C++ programming.

\item{\jonas}\newline
Third year student at NTNU. Experience with Java, Python, Lua, PHP, and web standards such as HTML,
CSS and Javascript. Previously worked with media and sound engineering.

\item{\bjornar}\newline
Third year Informatics student at NTNU. Experience with programming in Java, C and C++.
Previously worked with electronics and have basic knowledge about AVR microcontrollers through
own projects.
\end{itemize}

\section{Definitions}

Here we introduce a list of the terms used in this document with a short explanation of their meaning.

\begin{description}
\item[Android] A operating system based on Linux primarily for mobile devices made by Google.
\item[Android-Arduino applications] With this term we refer to Android applications used to control the behaviour of prorotypes.
\item[Apache] A software foundation focused on open source and community driven software.
\item[Arduino] Arduino is a tool for making computers that can sense and control more of the physical world than your
desktop computer. It's an open-source physical computing platform based on a simple microcontroller board, and a development
environment for writing software for the board. \cite{link:arduino}
\item[Facebook] Facebook is the biggest social network. It is also the network our libraries primarily focus on.
\item[OpenSocial] OpenSocial\cite{link:opensocial} is an open source standard by Google for a set of API. It's aim is to
provide a common runtime environment for web applications within different social networks. It is supported by networks
such as Orkut, MySpace, LinkedIn and many more. Facebook and Twitter do not support OpenSocial and they both have their
own custom propietary APIs.
\item[Product] This project's deliverables: a set of prototypes and Android applications and libraries.
\item[Prototype] An Arduino board, running a custom firmware. It works in conjunction with an Android application
that controls its behaviour and another Android application that fetches the required data from a social network.
\item[Shield] An arduino chip (or module) one puts on top of the main board to extends the arduino's feature set.
\item[Shindig] Shindig is Apache's implementation of the OpenSocial standard.
\item[Social service] With this term we refer to Android services used to fetch data from a social network.
\end{description}
{'fraction_non_alphanumeric': 0.04315582558970693, 'fraction_numerical': 0.0008934953538241601, 'mean_word_length': 4.98876404494382, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 16, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '804200', 'n_tokens_mistral': 2724, 'n_tokens_neox': 2577, 'n_words': 1585}