summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSiddharth Ravikumar <sravik@bgsu.edu>2016-03-07 19:33:48 -0500
committerSiddharth Ravikumar <sravik@bgsu.edu>2016-03-07 19:33:48 -0500
commit9497ded90b9e48a08e103fab25ccac8adf5bc4d5 (patch)
tree8f2aadfd3879a71c57dafa28a0cf68096c63b7e5
parent7e08085aa5314c2a9b9845fef9d4a7d49c23df00 (diff)
Edited Chapter 1.
-rw-r--r--report/chapters/1-intr.tex72
-rw-r--r--report/combox-report.pdfbin476899 -> 476645 bytes
-rw-r--r--report/prologue/abbrev.tex1
3 files changed, 40 insertions, 33 deletions
diff --git a/report/chapters/1-intr.tex b/report/chapters/1-intr.tex
index 74f4137..98645ae 100644
--- a/report/chapters/1-intr.tex
+++ b/report/chapters/1-intr.tex
@@ -4,10 +4,10 @@
screwed.}{\textit{Daniel J. Bernstein}}
Internet companies have made it trivial for computer users to store
-data/information on their computers and at the same time there is a
-lot of evidence of governments and other powerful organizations being
-able to access information/data stored on the Internet companies'
-computers\cite{website:wikileaks-spyfiles}. Also most companies add a
+data/information on their servers and at the same time there is a lot
+of evidence of governments and other powerful organizations being able
+to access information/data stored on the Internet companies'
+computers\cite{website:wikileaks-spyfiles}. Also, most companies add a
standard clause in their privacy policy that allows them to disclose
information about users or information stored/created by users to
``third parties'':
@@ -25,16 +25,17 @@ In this type of world, it did be good to have a program that would
encrypt all the data/information before storing it on the storage
provided by Internet companies. combox aims to be one such program
which not only encrypts but stores only a part of the encrypted
-data/information on the Internet company' storage, thus making it
-non-trivial for ``third parties'' get access the user's
-data/information. Section \ref{1-sec-b} gives a conceptual
-introduction to combox; Section \ref{1-sec-cb-diff} enumerates how combox
-is different from Combo-Box; lastly, section \ref{1-sec-using-cb}
-contains information on how one can start using combox.
+data/information on the storage provided by an Internet company, thus
+making it non-trivial for ``third parties'' get access the user's
+data/information. Section \ref{1-sec-cb} gives a conceptual
+introduction to combox; Section \ref{1-sec-cb-diff} enumerates how
+combox is different from Vollmar's Combo-Box; lastly, section
+\ref{1-sec-using-cb} contains information on how one can start using
+combox.
\section{What is combox?}\label{1-sec-cb}
-combox allows the user to store all her files in the ``combox
+combox allows the user to store all their files in the ``combox
directory'' and combox picks each file stored in the combox directory,
splits them into N shards, encrypts each of the N shards and spreads
the shards to N node directories. A ``node directory'' is the
@@ -121,29 +122,32 @@ respective node directory on the user's computer.
\label{fig:1-combox-overview-1}
\end{figure}
-As of combox \verb+v0.2.2+, combox is compatible on GNU/Linux and OS
+As of combox \verb+v0.2.3+, combox is compatible on GNU/Linux and OS
X, it supports just two file storage providers -- Google Drive and
Dropbox.
\section{How is combox different from Combo-Box?}\label{1-sec-cb-diff}
Combo-Box by Wesley Vollmar\cite{vollmar-combo-box} was the first
-implementation of the idea storing encrypted shards of a file on the
-computers different of different file storage providers. Differences
-between Vollmar's Combo-Box and combox are enumerated below:
+implementation of the idea of storing encrypted shards of a file on
+storage provided different file storage providers and depending on the
+file storage provider's client to sync shards to their respective
+servers. Differences between Vollmar's Combo-Box and combox are
+enumerated below:
\begin{description}
\item[Platform] Combo-Box runs Microsoft Windows, whereas combox runs
- on GNU/Linux and OS X and is not compatible with Microsoft Windows.
+ on GNU/Linux and OS X and is not compatible with Microsoft Windows
+ as of version 0.2.3.
\item[File splitting] Combo-Box splits a file into shards based on the
space available on each node directory\cite{vollmar-combo-box},
while combox is not yet cognizant about about space left in each
node directory and splits the file into N equal shards, where N is
equal to the number of node directories.
\item[User Interface] Combo-Box is graphical application while combox
- mostly a commandline program; combox's configuration wizard has a
- graphical interface and the wizard has a commandline interface for
- users who just like to do everything from the commandline.
+ is mostly a commandline program; combox's configuration wizard has a
+ graphical interface. The configuration wizard has a commandline
+ interface too for users who like TUI.
\item[Database] Combo-Box uses a SQL traditional database with two
tables to keep track of files' shards, files' hash, files' last
``sync time'' and for ``security and stability'' uses stored
@@ -154,12 +158,14 @@ between Vollmar's Combo-Box and combox are enumerated below:
the files stored in the combox directory using the pickleDB
library\cite{pylib:pickledb}. The key-value data store is a JSON
file and all access to this data store is done through an instance
- of \verb+combox.silo.ComboxSilo+ which enforces synchronization
- through a lock (\verb+threading.Lock+). In the data store, combox
- keeps track of the hashes of all the files stored in the combox
- directory; the data store also contains dictionaries that track
- number of shards which have been create/moved/modified/deleted on
- another computer.
+ of \verb+combox.silo.ComboxSilo+
+ class\footnote{https://git.ricketyspace.net/combox/tree/combox/silo.py?id=fb7fdd218\#n29}
+ which ensures that only one thread can read from or write to the
+ data store at any time through a lock (\verb+threading.Lock+). In
+ the data store, combox keeps track of the hashes of all the files
+ stored in the combox directory; the data store also contains
+ dictionaries that track number of shards which have been
+ create/moved/modified/deleted on another computer.
\item[Installation] Combo-Box uses the proprietary
InstallShield\cite{nonfree-installshield} to install the program,
@@ -168,7 +174,7 @@ between Vollmar's Combo-Box and combox are enumerated below:
combox is a python package, it either be installed through python's
package manager (\verb+pip+\cite{py:pip}) with
\verb+pip install combox+ or it can be installed from the source
- with the standard $python setup.py install$.
+ with the standard \verb+python setup.py install+.
\item[Configuration] Combo-Box saves its configuration inside the
Combo-Box directory and this configuration is shared by all
@@ -178,11 +184,11 @@ between Vollmar's Combo-Box and combox are enumerated below:
combox stores its configuration at
\verb+$HOME/.combox/config.yaml+; the configuration file is not
- shared on computers on which the user runs combox and therefore is
- independent; this makes it possible to keep the combox directory and
- the directories of the file storage providers' (node directories) in
- different location on each computer. The configuration file is a
- YAML file and can be directly edited by the user if she wishes to.
+ shared on computers on which the user runs combox; this makes it
+ possible to keep the combox directory and the directories of the
+ file storage providers' (node directories) in different locations on
+ each computer. The configuration file is a YAML file and can be
+ directly edited by the user if they wish to.
\end{description}
\section{Using combox}\label{1-sec-using-cb}
@@ -203,7 +209,7 @@ combox is extremely event-driven and depends on file-system events to
do the right thing when a file is created/modified/moved/deleted, so
the user must sure to start combox before starting the file storage
providers' client programs that sync encrypted shards to the
-respective node directories; on most GNU/Linux distributions this can
-be automated through by using the distribution's startup system (most
+respective node directories; on GNU/Linux distributions this can be
+automated through by using the distribution's startup system (most
GNU/Linux distributions seem to use
\verb+systemd+\cite{website:systemd} these days).
diff --git a/report/combox-report.pdf b/report/combox-report.pdf
index 8f6b66c..3a2f184 100644
--- a/report/combox-report.pdf
+++ b/report/combox-report.pdf
Binary files differ
diff --git a/report/prologue/abbrev.tex b/report/prologue/abbrev.tex
index 1a0aba5..86aa891 100644
--- a/report/prologue/abbrev.tex
+++ b/report/prologue/abbrev.tex
@@ -3,6 +3,7 @@
\abbreviation{YAML}{YAML Ain't Markup Language}
\abbreviation{CLI}{Command Line Interface}
\abbreviation{GUI}{Graphical User Interface}
+ \abbreviation{TUI}{Text User Interface}
\abbreviation{JSON}{JavaScript Object Notation}
\end{listofabbreviations}