summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2012-08-29 00:33:56 -0700
committerelijah <elijah@riseup.net>2012-08-29 00:33:56 -0700
commite4f2547fbabab8080e9a7678f38203874c52c45d (patch)
tree4dad949ae91053eb30eb3a805fc5cd2bac74c918 /app
parentcc8c9ede76fa946c0aabf4aeba55d29963bb7047 (diff)
security bingo!
Diffstat (limited to 'app')
-rw-r--r--app/assets/stylesheets/leap.scss6
-rw-r--r--app/helpers/application_helper.rb6
-rw-r--r--app/helpers/blog_helper.rb2
-rw-r--r--app/views/layouts/blog/_summary.html.haml12
-rw-r--r--app/views/pages/about-us/news/2012/security-bingo/en.haml205
-rw-r--r--app/views/pages/about-us/news/en.haml1
6 files changed, 224 insertions, 8 deletions
diff --git a/app/assets/stylesheets/leap.scss b/app/assets/stylesheets/leap.scss
index 1671a40..b51d22b 100644
--- a/app/assets/stylesheets/leap.scss
+++ b/app/assets/stylesheets/leap.scss
@@ -160,9 +160,15 @@ table.timeline {
article.blog_summary {
+ margin-bottom: 1em;
.byline {
color: #999;
}
+ .content {
+ p {
+ margin-bottom: 0;
+ }
+ }
}
article.blog_full {
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 903549b..a9a7dc9 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -45,7 +45,11 @@ module ApplicationHelper
end
def page_path(page)
- '/' + ([I18n.locale.to_s] + page.path).join('/')
+ if page.props.path_prefix
+ "/#{I18n.locale.to_s}/#{page.props.path_prefix}/#{page.name}"
+ else
+ '/' + ([I18n.locale.to_s] + page.path).join('/')
+ end
end
#
diff --git a/app/helpers/blog_helper.rb b/app/helpers/blog_helper.rb
index 20e4113..9e58fc8 100644
--- a/app/helpers/blog_helper.rb
+++ b/app/helpers/blog_helper.rb
@@ -3,7 +3,7 @@ module BlogHelper
def recent_blog_summaries(path)
root = StaticPage.find(path)
if root
- pages = root.all_children.order_by(:posted_at).limit(PAGINATION_SIZE)
+ pages = root.all_children.order_by(:posted_at, :direction => :desc).limit(PAGINATION_SIZE)
haml do
pages.each do |page|
haml render(:partial => 'layouts/blog/summary', :locals => {:page => page})
diff --git a/app/views/layouts/blog/_summary.html.haml b/app/views/layouts/blog/_summary.html.haml
index c1f7784..68756b1 100644
--- a/app/views/layouts/blog/_summary.html.haml
+++ b/app/views/layouts/blog/_summary.html.haml
@@ -9,9 +9,9 @@
%i
= time_tag(page.props.posted_at.to_date, :format => :long, :pubdate => true)
%div.content
- - if page.props.preview
- = page.props.preview
- - if page.props.body.try(:any?)
- = link_to(I18n.t(:read_more), page_path(page))
- - else
- = render :template => page.template_path \ No newline at end of file
+ - if page.props.preview
+ = page.props.preview
+ - if page.props.body.try(:any?)
+ = link_to(I18n.t(:read_more), page_path(page))
+ - else
+ = render :template => page.template_path \ No newline at end of file
diff --git a/app/views/pages/about-us/news/2012/security-bingo/en.haml b/app/views/pages/about-us/news/2012/security-bingo/en.haml
new file mode 100644
index 0000000..344ee35
--- /dev/null
+++ b/app/views/pages/about-us/news/2012/security-bingo/en.haml
@@ -0,0 +1,205 @@
+- @title = "Let's play security bingo!"
+- @author = "Elijah"
+- @posted_at = "2012-08-28"
+- @preview = capture_haml do
+ :textile
+ To be honest, this is might be the least satisfying game of bingo ever--but let's play anyway. The rules are simple: draw a grid, label the columns for different platforms, and label the rows for important communication toolsets. In each cell, put the name of an open source software package with reasonable security properties. If this exercise doesn't make you break down in tears, then you have won.
+
+%style
+ :sass
+ table.table
+ border: 1px solid #ccc
+ background: white
+ td
+ width: 12.5%
+ font-size: 0.9em
+ border-right: 1px solid #ccc
+ td.section
+ border-right: 0
+
+= @preview
+
+:textile
+
+ The rules probably need some adjustment if this game is to catch on.
+
+ Here is my attempt at playing:
+
+%table.table
+ %tr
+ %th
+ %th
+ %th Windows
+ %th Mac
+ %th Linux
+ %th iOS
+ %th Android
+ %th Web
+ %tbody
+ %tr
+ %td.section{:rowspan => 3} Messages
+ %td Short Message
+ %td{:colspan => 3} Pidgin, Gajim, OTR
+ %td SecureChat
+ %td Gibberbot, Beem, TextSecure
+ %td Cryptocat
+ %tr
+ %td Long Message
+ %td{:colspan => 3} (Thunderbird + Enigmail)
+ %td
+ %td (K-9 + AGP)
+ %td
+ -# %tr
+ %td Social Networking
+ %td
+ %td
+ %td
+ %td
+ %td
+ %td
+ %tbody
+ %tr
+ %td.section{:rowspan => 5} Files
+ %td Storage
+ %td DiskCryptor
+ %td
+ %td EncFS, DMCrypt
+ %td
+ %td (AOSP, LUKS Manager, Cryptonite)
+ %td SafeWith.me
+ %tr
+ %td Backup
+ %td Duplicati
+ %td
+ %td Déjà Dup
+ %td
+ %td FlashBack
+ %td
+ %tr
+ %td Synchronization
+ %td{:colspan => 3} (Syncany, git-annex)
+ %td
+ %td
+ %td
+ %tr
+ %td Data Wipe
+ %td
+ %td
+ %td wipe
+ %td
+ %td InTheClear
+ %td N/A
+ -# %tr
+ %td Collaboration
+ %td
+ %td
+ %td
+ %td
+ %td
+ %td
+ %tbody
+ %tr
+ %td.section{:rowspan => 3} Audio/Video
+ %td Direct Calling
+ %td{:colspan => 3} (Jitsi)
+ %td
+ %td RedPhone, CSimpleSip
+ %td
+ %tr
+ %td Conference
+ %td{:colspan => 3} (Mumble)
+ %td
+ %td (Mumble)
+ %td
+ %tr
+ %td Capture & Reporting
+ %td
+ %td
+ %td
+ %td
+ %td ObscuraCam
+ %td
+ %tbody
+ %tr
+ %td.section{:rowspan => 2} Network
+ %td Availability
+ %td{:colspan => 5} Commotion
+ %td N/A
+ %tr
+ %td Confidentiality & Anonymity
+ %td{:colspan => 5} Tor, (OpenVPN)
+ %td N/A
+ %tbody
+ %tr
+ %td.section{:rowspan => 3} Identity
+ %td Passwords
+ %td{:colspan => 3} KeePassX
+ %td
+ %td KeePassDroid
+ %td
+ %tr
+ %td Validation
+ %td{:colspan => 6} (OpenPGP, OTR)
+ %tr
+ %td Authentication
+ %td{:colspan => 6} Mozilla Persona, WebID
+ -# %tbody
+ %tr
+ %td.section{:rowspan => 2} Anti-intrusion
+ %td Firewall
+ %td
+ %td
+ %td Many
+ %td
+ %td DroidWall
+ %td N/A
+ %tr
+ %td Anti-virus
+ %td
+ %td ClamXav
+ %td ClamAV
+ %td
+ %td
+ %td N/A
+ -# %tbody
+ %tr
+ %td.section{:rowspan => 3} Productivity
+ %td Events & Scheduling
+ %td
+ %td
+ %td
+ %td
+ %td
+ %td
+ %tr
+ %td Tasks & Planning
+ %td
+ %td
+ %td
+ %td
+ %td
+ %td
+
+:textile
+ Looking at this table, two things are immediately obvious: first, I don't know much about Mac or iOS; second, there are a lot of missing cells, and most of the filled cells are dubious in nature.
+
+ I put cells in parenthesis whenever I felt that the cell contents were egregiously doubtful. This could be for any number of reasons:
+
+ * *Not ready*: Some software shows promise, but there is not really any code that is ready to be used. For example, Syncany and git-annex.
+ * *Security problems*: Some software has notable security problems. Mumble, for example, only supports variable bit-rate encoding and is thus not suited to prevent eavesdropping by a skilled adversary.
+ * *Hostile to users*: Much of the available software exemplifies a painful user experience. For example, Jitsi, OpenVPN, or OpenPGP.
+
+ What is missing might be more revealing than what is listed. These toolsets are entirely absent from my 'security bingo' game card:
+
+ * *Social Networking:* When I excluded software that I think is unfeasible (SecureShare) or has no security (Diaspora, etc), then you end up with zero projects.
+ * *Document Collaboration:* I have high hopes an encrypted etherpad, but so far no one has started work on it.
+ * *Photos/Vidoes & Galleries:* Nothing I have heard of.
+ * *Events & Scheduling:* Nothing I have heard of.
+ * *Tasks & Planning:* Nothing I have heard of.
+
+ I also excluded a few obvious categories:
+
+ * *Firewall:* Reasonable firewall support is now built into most operating systems.
+ * *Anti-virus:* Viruses are still mostly a problem on Windows. Other platforms have just gotten lucky so far.
+
+ If you have suggestions for how I can fill in my game card, please write elijah@leap.se. \ No newline at end of file
diff --git a/app/views/pages/about-us/news/en.haml b/app/views/pages/about-us/news/en.haml
index 220be02..87eaac5 100644
--- a/app/views/pages/about-us/news/en.haml
+++ b/app/views/pages/about-us/news/en.haml
@@ -1,2 +1,3 @@
- @layout = 'blog'
+- @path_prefix = '2012'
= recent_blog_summaries('about-us/news') \ No newline at end of file