Skip to content

Commit 98d5345

Browse files
committed
Added to conclusion, process and recommendations.
1 parent 64a9fb5 commit 98d5345

File tree

6 files changed

+23
-8
lines changed

6 files changed

+23
-8
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@
44
*.out
55
*.swp
66
*.synctex.gz
7+
*.toc
8+
main-blx.bib

Report/conclusion.tex

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
\chapter{Conclusion}
2-
Based on the final product of the project it is safe to say that peer-to-peer applications involving streaming, downloading and uploading of files is possible on smart TV's. Due to hardware limitations the application was never able to reach its full potential but the results are very promising for future televisions with better hardware. Dispite the hardware issues, the technology does work which makes our application is the first fourth generation peer-to-peer file sharing application in the world.
2+
Unlike most bachelor projects, ours started in the third quarter of the year. During this time we worked part-time next to our regular courses to set up a development environment, which was quite a challenging task. This allowed us to begin development as soon as the fourth quarter started. The constant struggle against the constrainst of the TV was one of the things that made the project challenging and enjoyable. Developing on a device that nobody has really developed for before and having to solve new and unexpected problems along the way made this a very educational project.
33

4-
Another important aspect as to whether more advanced applications will be developed for televisions is the amount of freedom manufacturers are willing to give to developers. As it stands, television manufacturers seem very weary of giving any access to their TV's, which is very understandable from a security point of view. However, if the full potential of the smart TV is to be reached, developers must be given full access to develop advanced programs or else the smart TV will remain a gimmick with limited functionality.
4+
Based on the final product it is safe to say that peer-to-peer applications involving streaming, downloading and uploading of files is possible on smart TV\textquotesingle s. Due to hardware limitations the application was never able to reach its full potential but the results are very promising for future televisions with better hardware. Despite the hardware issues, the technology does work which makes our application the first fourth generation peer-to-peer file sharing application on a smart tv in the world.
5+
6+
Another important aspect, next to better hardware, as to whether more advanced applications will be developed for televisions is the amount of freedom manufacturers are willing to give to developers. As it stands, television manufacturers seem very weary of giving any access to their TV\textquotesingle s, which is very understandable from a security point of view. However, if the full potential of the smart TV is to be reached, developers must be given full access to develop advanced programs or else the smart TV will remain a gimmick with limited functionality.

Report/further_recommendations.tex

+3
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@ \chapter{Recommendations}
33

44
A major limitation during this project was the hardware in the television. The application we built depends on reasonably heavy python programs and requires quite a lot of memory when streaming. Although the CPU seemed to be able to keep up, the lack of memory was very noticable when streaming. Thankfully, as technology improves and becomes cheaper, televisions will get better hardware and it will not be long untill they will be able to easily run application like this one. For future versions of peer-to-peer applications on televisions, better hardware is a must.
55

6+
Once televisions are powerfull enough to handle high quality video streaming, a better version of the application can be created. Although we were very happy with the back-end of our application, the GUI part was not as refined because our focus was on the back-end. In order to make the application more user friendly the GUI needs to be improved. Thanks to the way our application is made, any GUI that can send HTTP requests and parse XML is able to interface with our application which makes changing to a completely different GUI very easy.
7+
8+
At the moment Dispersy and DHT are built into Tribler. When we needed both these services we were forced to run Tribler with a bunch of modules switched off, just leaving Dispersy, DHT and some other necessary elements. It would be better if Dispersy and DHT could be run as independent modules.

Report/main-blx.bib

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
@Comment{$ biblatex control file $}
2-
@Comment{$ biblatex version 1.4 $}
2+
@Comment{$ biblatex version 1.7 $}
33
Do not modify this file!
44
55
This is an auxiliary file used by the 'biblatex' package.
66
This file may safely be deleted. It will be recreated as
77
required.
88
99
@Control{biblatex-control,
10-
options = {1.4:0:0:1:0:0:1:1:0:0:0:0:1:1:3:1:79:+},
10+
options = {1.7:0:0:1:0:0:1:1:0:0:0:0:1:1:3:1:79:+},
1111
}

Report/main.toc

+11-3
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@
7474
\defcounter {refsection}{0}\relax
7575
\contentsline {section}{\numberline {5.3}Python}{31}{section.5.3}
7676
\defcounter {refsection}{0}\relax
77+
\contentsline {section}{\numberline {5.4}Changes during development}{31}{section.5.4}
78+
\defcounter {refsection}{0}\relax
79+
\contentsline {subsection}{\numberline {5.4.1}Upload visibility}{31}{subsection.5.4.1}
80+
\defcounter {refsection}{0}\relax
81+
\contentsline {subsection}{\numberline {5.4.2}Number of downloads}{31}{subsection.5.4.2}
82+
\defcounter {refsection}{0}\relax
83+
\contentsline {subsection}{\numberline {5.4.3}Excluded features}{31}{subsection.5.4.3}
84+
\defcounter {refsection}{0}\relax
7785
\contentsline {chapter}{\numberline {6}Process}{32}{chapter.6}
7886
\defcounter {refsection}{0}\relax
7987
\contentsline {section}{\numberline {6.1}Planning}{32}{section.6.1}
@@ -86,11 +94,11 @@
8694
\defcounter {refsection}{0}\relax
8795
\contentsline {subsection}{\numberline {6.3.2}Installing missing dependencies}{34}{subsection.6.3.2}
8896
\defcounter {refsection}{0}\relax
89-
\contentsline {subsection}{\numberline {6.3.3}TCP Reset packages}{34}{subsection.6.3.3}
97+
\contentsline {subsection}{\numberline {6.3.3}TCP Reset packages}{35}{subsection.6.3.3}
9098
\defcounter {refsection}{0}\relax
91-
\contentsline {subsection}{\numberline {6.3.4}Classical fork() and thread problem}{34}{subsection.6.3.4}
99+
\contentsline {subsection}{\numberline {6.3.4}Classical fork() and thread problem}{35}{subsection.6.3.4}
92100
\defcounter {refsection}{0}\relax
93-
\contentsline {subsection}{\numberline {6.3.5}Communication between javascript and C++}{34}{subsection.6.3.5}
101+
\contentsline {subsection}{\numberline {6.3.5}Communication between javascript and C++}{35}{subsection.6.3.5}
94102
\defcounter {refsection}{0}\relax
95103
\contentsline {subsection}{\numberline {6.3.6}Starting the HTTP server}{35}{subsection.6.3.6}
96104
\defcounter {refsection}{0}\relax

Report/process.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ \section{Testing}
1616

1717
We only wrote tests for C++ as this was the core of our application. We made use of the google test library which allowed for easy implementation of unit tests. The tests were developed in parallel with the development of the application which allowed for constant checking for bugs with every change. This way most bugs were immediatly discovered and removed as soon as they appeared. Writing the tests also helped making the system robust and able to handle unexpected input and calls without crashing.
1818
\\\\
19-
Almost every method has its own tests, usually a trivial test and additionally a couple of tests with unexpected input. Certain classes, especially DownloadManager, required test cases to call multiple different methods in order to test certain situations. Although this resulted in some relatively long test cases it did guarentee a solid application capable of handling a large range of situations.
19+
Every class has its own test class and almost every method has its own tests, usually a trivial test and additionally a couple of tests with unexpected input or unexpected situations. Certain classes, especially DownloadManager, required test cases to call multiple different methods in order to test certain situations. Although this resulted in some relatively long test cases it did guarentee a solid application capable of handling a large range of exceptional situations.
2020
\\\\
2121
We chose not to fully test SearchEngine, the reason being that SearchEngine relies on dispersy and DHT. Both of these services are unreliable when it comes to returning search results, you do not always get the same results and sometimes you get no results. The testing environment requires a fixed return value every time. In order to achieve this we created a mock of the SearchEngine class which has the same functionality as the real SearchEngine except when it comes to searching. The mock always returns the exact same results which are hard coded in the mock. This allowed us to test HttpServer without having to worry about dispersy and DHT returning different values every time.
2222

0 commit comments

Comments
 (0)