From 9497ded90b9e48a08e103fab25ccac8adf5bc4d5 Mon Sep 17 00:00:00 2001
From: Siddharth Ravikumar <sravik@bgsu.edu>
Date: Mon, 7 Mar 2016 19:33:48 -0500
Subject: Edited Chapter 1.

---
 report/chapters/1-intr.tex | 72 +++++++++++++++++++++++++---------------------
 1 file changed, 39 insertions(+), 33 deletions(-)

(limited to 'report/chapters/1-intr.tex')

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).
-- 
cgit v1.2.3

