1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
\chapter{Conclusion and Future Work}\label{ch:5}
\epigraph{The answer to this is very simple. It was a joke. It had to
be a number, an ordinary, smallish number, and I chose that
one. Binary representations, base thirteen, Tibetan monks are all
complete nonsense. I sat at my desk, stared into the garden and
thought '42 will do' I typed it out. End of story.
}{\textit{Douglas Adams, November 1993}}
combox is at a stage where it can be used by users as a tool to use
the storage provided by two file storage providers -- Google Drive and
Dropbox -- such that only part of each file in the encrypted form is
stored on the computers of the file storage providers; this method of
storing files on file storage providers makes it difficult but not
impossible for ``third parties'' to gain access to the user's personal
files.
combox is at version 0.2.2, it is a python package licensed under the
GNU General Public License version 3 or later. It is compatible with
GNU/Linux and OS X. The program is considered to be in ``alpha'' stage
and must be used for experimental use only, it is not recommended to
store critical files on storage provided by file storage providers
using combox. Individuals who wish to try combox would want to look at
\url{https://ricketyspace.net/combox/setup/} to get the program
installed on their machines; Individuals who want to hack/learn about
combox would want to look at
\url{https://ricketyspace.net/combox/api/}. combox's canonical source
repository is at \url{https://git.ricketyspace.net/combox}, the
repository is also mirrored at
\url{https://bitbucket.org/bgsucodeloverslab/combox/src} and
\url{http://rsiddharth.ninth.su/git/cb.git/}.
There are a lot of things that can be done to improve combox, what
follows is a non-exhaustive list of things to do in the future:
\begin{itemize}
\item Make combox cognizant about space available on each node
directory. At the moment, combox reads the amount of free space
available on each node directory (file storage provider's directory)
when configuring combox on a computer but does not use this
information to reckon the space left in each node directory.
\item Re-think \verb+combox.events+ module. This module was written
with the assumption that combox will be the only one to make changes
to the node directories. This assumption was found to be not true
when manually testing combox with node clients (Google Drive and
Dropbox client that sync files to/from the respective node
directories to/from their respective servers); both the Google Drive
and the Dropbox client make modifications to the Google Drive and
Dropbox directory respectively whenever pulling a modified shard
from their server to this computer, this behavior broke combox and
major changes were made to the \verb+combox.events+ module to make
it understand the node client's behavior in the node directory;
these changes, increased the complexity of the classes defined in
the \verb+combox.events+; it would be great to re-think this module
in such a way that it reduces its complexity.
\item Evaluate if more information needs to tracked about each file in
the combox directory; at the moment, combox only keeps track of the
SHA256 hash of each file stored in the combox directory.
\item Support more file storage providers; for this, ideally no code
needs to be written for supporting a new file storage provider,
combox must be tested with the new file storage provider's directory
as a node directory. If the new file storage provider's client (that
sync's the shards their servers) makes non-standard changes to its
directory (like the official Dropbox and Google Drive clients do),
then the \verb+combox.events.NodeDirMonitor+ must be accordingly
updated to make combox cognizant about the file storage provider
client's non-standard behavior.
\item Make unit tests more modular. At the moment, there are some unit
test functions that test more than one usecase/facet of a function
or class; for instance, the \verb+test_CDM+ test method part of the
the \verb+tests.events_test.TestEvents+ test class tests the
correctness of the \verb+combox.events.ComboxDirMonitor+ for file
creation, deletion, rename and modification; this method would
ideally broken down into four tests methods.
\item Make combox Python 3 compatible. The \verb+2to3+ program (which
is part of the standard Python library since Python version 2.6) and
the \verb+six+ library can be used to achieve this. See Appendix
\ref{a-python3c} for more information on this.
\item Support Microsoft Windows. The way to make combox compatible
with Windows will be to run unit tests on Windows, the failing tests
might give pointers to what parts of combox needs to be changed in
order for it to be compatible with Windows. Individuals interested
in making combox compatible with Windows might find
\url{https://ricketyspace.net/combox/setup/#windows} useful; it
contains information about setting up the development environment
for combox on Windows.
\end{itemize}
|