Skip to content
This repository has been archived by the owner on Mar 3, 2020. It is now read-only.

Commit

Permalink
Merge pull request #3 from nning/study
Browse files Browse the repository at this point in the history
Study about web administration interfaces for mail servers backed by relational databases.
  • Loading branch information
nning committed Aug 1, 2014
2 parents 60205e4 + 09b5887 commit 3741cfa
Show file tree
Hide file tree
Showing 11 changed files with 941 additions and 0 deletions.
10 changes: 10 additions & 0 deletions doc/study/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
*.aux
*.bbl
*.bcf
*.blg
*.log
*.out
*.pdf
*.run.xml
*.tex.bak
*.toc
5 changes: 5 additions & 0 deletions doc/study/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source 'https://rubygems.org'

gem 'guard-rake'
gem 'inotify'
gem 'rake'
43 changes: 43 additions & 0 deletions doc/study/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
GEM
remote: https://rubygems.org/
specs:
celluloid (0.15.2)
timers (~> 1.1.0)
coderay (1.1.0)
ffi (1.9.3)
formatador (0.2.5)
guard (2.6.1)
formatador (>= 0.2.4)
listen (~> 2.7)
lumberjack (~> 1.0)
pry (>= 0.9.12)
thor (>= 0.18.1)
guard-rake (0.0.9)
guard
rake
inotify (1.0.2)
listen (2.7.9)
celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
lumberjack (1.0.9)
method_source (0.8.2)
pry (0.10.0)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
rake (10.3.2)
rb-fsevent (0.9.4)
rb-inotify (0.9.5)
ffi (>= 0.5.0)
slop (3.6.0)
thor (0.19.1)
timers (1.1.0)

PLATFORMS
ruby

DEPENDENCIES
guard-rake
inotify
rake
3 changes: 3 additions & 0 deletions doc/study/Guardfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
guard 'rake', task: :open do
watch(/^.*\.(bib|tex)$/)
end
42 changes: 42 additions & 0 deletions doc/study/Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
@name = File.basename(File.dirname(__FILE__))

task default: :build

desc 'Build document as PDF (default)'
task build: "#@name.pdf"

desc 'Build document as PDF'
file "#@name.pdf" => Dir['{*.{bib,tex},images/*.pdf}'] do
sh "texi2pdf #@name.tex"
end

desc 'Build document as PDF with line numbers'
task :review do
File.write 'review.tex', '\usepackage{lineno}\linenumbers'
Rake::Task['build'].invoke
rm_f 'review.tex'
end

desc 'Cleanup temporary files'
task :clean do
Dir['**/*.{aux,bbl,bcf,blg,log,nav,out,run.xml,snm,toc}'].each do |file|
rm_f file
end
end

desc 'Cleanup everything'
task clean_all: :clean do
rm_f "#@name.pdf"
end

desc 'Open document in default PDF viewer'
task open: :build do
sh "xdg-open #@name.pdf"
end

desc 'Build document for export and clean up'
task export: :build do
export_name = 'moeil-' + Time.now.strftime('%Y%m%d') + '.pdf'
sh "ln -f #@name.pdf #{export_name}"
Rake::Task['clean_all'].invoke
end
18 changes: 18 additions & 0 deletions doc/study/acronyms.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
\newpage
\section{Acronyms}
\begin{acronym}
\acro{API} {Application programming interface}
\acro{CLI} {Command line interface}
\acro{CoC} {Convention over Configuration}
\acro{CRUD} {Create, read, update and delete}
\acro{DBMS} {Database Management System}
\acro{DRY} {Don't Repeat Yourself}
\acro{MVC} {Model-View-Controller}
\acro{ORM} {Object-relational Mapper}
\acro{Rails}{Ruby on Rails}
\acro{REST} {Representational state transfer}
\acro{SMTP} {Simple Mail Transfer Protocol}
\acro{SQL} {Structured Query Language}
\acro{UI} {User Interface}
\acro{VCS} {Version Control System}
\end{acronym}
73 changes: 73 additions & 0 deletions doc/study/bibliography.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
@misc{agpl,
title = "Affero General Public License, version 3",
url = "http://www.gnu.org/licenses/agpl.html",
year = 2007,
month = nov,
day = 19
}

@article{dbnorm,
author = "Codd, E. F.",
title = "A Relational Model of Data for Large Shared Data Banks",
volume = 13,
number = 6,
pages = "377--387",
year = 1970,
month = jun
}

@misc{mail-architecture,
author = "D. Crocker",
title = "Internet Mail Architecture",
year = 2009,
month = jul,
organization = "IETF",
howpublished = "RFC 5598",
url = "http://tools.ietf.org/html/rfc5598"
}

@misc{managesieve,
author = "A. Melnikov and T. Martin",
title = "A Protocol for Remotely Managing Sieve Scripts",
year = 2010,
month = jul,
organization = "IETF",
howpublished = "RFC 5804",
url = "http://tools.ietf.org/html/rfc5804"
}

@phdthesis{rest,
author = "Fielding, Roy Thomas",
title = "REST: Architectural Styles and the Design of Network-based Software Architectures",
year = 2000,
school = "University of California, Irvine",
type = "Doctoral dissertation",
url = "http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm"
}

@misc{sieve,
author = "P. Guenther and T. Showalter",
title = "Sieve: An Email Filtering Language",
year = 2008,
month = jan,
organization = "IETF",
howpublished = "RFC 5228",
url = "http://tools.ietf.org/html/rfc5228"
}

@misc{smtp,
author = "J. Klensin",
title = "Internet Mail Architecture",
year = 2008,
month = oct,
organization = "IETF",
howpublished = "RFC 5321",
url = "http://tools.ietf.org/html/rfc5321"
}

@techreport{sql,
title = "Information technology - Database languages - SQL",
year = 2011,
type = "ISO/IEC Standard",
number = 9075
}
33 changes: 33 additions & 0 deletions doc/study/commands.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
% Shorten the usage of german quotation marks.
\newcommand{\gq}[1]{
\glqq #1\grqq
}

% Inline comment.
\newcommand{\comment}[2]{#2}
\newcommand{\todo}[2]{#2}

% Vertical space after paragraph.
\newcommand{\s}{\vspace{0.5em}}

% Little table for most important software info.
\newcommand{\infotable}[4]{
\begin{tabular}{p{2.5cm}l}
Website: & \url{#1} \\
Language: & #2 \\
Last commit: & #3 \\
Commits: & #4 \\
\end{tabular}
\s
}

% Emphasize a criterion.
\newcommand{\crit}[2]{\textbf{#1} (#2)}

% Aliases for yes and no in comparison overview table.
\newcommand{\y}{\checkmark}
\newcommand{\n}{$\times$}

% Easy reference to section name and page.
\newcommand{\textref}[1]{"\nameref{#1}" on page \pageref{#1}}
\newcommand{\textsecref}[1]{"\nameref{#1}" section on page \pageref{#1}}
10 changes: 10 additions & 0 deletions doc/study/font-family.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
% Palatino
\renewcommand*\rmdefault{ppl}
%\renewcommand{\baselinestretch}{1.125}
\renewcommand{\baselinestretch}{1.1875}

% Times
%\usepackage{times}

% Iwona
%\renewcommand*\rmdefault{iwona}
Binary file added doc/study/images/erd.pdf
Binary file not shown.
Loading

0 comments on commit 3741cfa

Please sign in to comment.