commit a6b8d8d6f4909d51cc171cd48c1925ef15909f5b Author: Karsten Loesing karsten.loesing@gmx.net Date: Wed Dec 21 14:02:00 2016 +0100
Apply new design to operation and development pages. --- website/etc/web.xml | 26 ++-- .../torproject/metrics/web/DevelopmentServlet.java | 31 +++++ .../torproject/metrics/web/OperationServlet.java | 31 +++++ .../org/torproject/metrics/web/ToolsServlet.java | 26 ---- website/web/WEB-INF/development.jsp | 39 ++++++ website/web/WEB-INF/operation.jsp | 33 +++++ website/web/WEB-INF/research.jsp | 8 ++ website/web/WEB-INF/tools.jsp | 136 --------------------- 8 files changed, 160 insertions(+), 170 deletions(-)
diff --git a/website/etc/web.xml b/website/etc/web.xml index b6f2015..7436906 100644 --- a/website/etc/web.xml +++ b/website/etc/web.xml @@ -213,26 +213,36 @@ </servlet-mapping>
<servlet> - <servlet-name>ToolsServlet</servlet-name> + <servlet-name>StatsServlet</servlet-name> <servlet-class> - org.torproject.metrics.web.ToolsServlet + org.torproject.metrics.web.StatsServlet </servlet-class> </servlet> <servlet-mapping> - <servlet-name>ToolsServlet</servlet-name> + <servlet-name>StatsServlet</servlet-name> + <url-pattern>/stats.html</url-pattern> + </servlet-mapping> + + <servlet> + <servlet-name>OperationServlet</servlet-name> + <servlet-class> + org.torproject.metrics.web.OperationServlet + </servlet-class> + </servlet> + <servlet-mapping> + <servlet-name>OperationServlet</servlet-name> <url-pattern>/operation.html</url-pattern> - <url-pattern>/development.html</url-pattern> </servlet-mapping>
<servlet> - <servlet-name>StatsServlet</servlet-name> + <servlet-name>DevelopmentServlet</servlet-name> <servlet-class> - org.torproject.metrics.web.StatsServlet + org.torproject.metrics.web.DevelopmentServlet </servlet-class> </servlet> <servlet-mapping> - <servlet-name>StatsServlet</servlet-name> - <url-pattern>/stats.html</url-pattern> + <servlet-name>DevelopmentServlet</servlet-name> + <url-pattern>/development.html</url-pattern> </servlet-mapping>
<servlet> diff --git a/website/src/org/torproject/metrics/web/DevelopmentServlet.java b/website/src/org/torproject/metrics/web/DevelopmentServlet.java new file mode 100644 index 0000000..bd09cd9 --- /dev/null +++ b/website/src/org/torproject/metrics/web/DevelopmentServlet.java @@ -0,0 +1,31 @@ +/* Copyright 2016 The Tor Project + * See LICENSE for licensing information */ + +package org.torproject.metrics.web; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class DevelopmentServlet extends AnyServlet { + + private static final long serialVersionUID = 6850919895248020945L; + + @Override + public void init() throws ServletException { + super.init(); + } + + @Override + public void doGet(HttpServletRequest request, + HttpServletResponse response) throws IOException, ServletException { + + /* Forward the request to the JSP that does all the hard work. */ + request.setAttribute("categories", this.categories); + request.getRequestDispatcher("WEB-INF/development.jsp").forward(request, + response); + } +} + diff --git a/website/src/org/torproject/metrics/web/OperationServlet.java b/website/src/org/torproject/metrics/web/OperationServlet.java new file mode 100644 index 0000000..029383d --- /dev/null +++ b/website/src/org/torproject/metrics/web/OperationServlet.java @@ -0,0 +1,31 @@ +/* Copyright 2016 The Tor Project + * See LICENSE for licensing information */ + +package org.torproject.metrics.web; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class OperationServlet extends AnyServlet { + + private static final long serialVersionUID = 6850919895248020945L; + + @Override + public void init() throws ServletException { + super.init(); + } + + @Override + public void doGet(HttpServletRequest request, + HttpServletResponse response) throws IOException, ServletException { + + /* Forward the request to the JSP that does all the hard work. */ + request.setAttribute("categories", this.categories); + request.getRequestDispatcher("WEB-INF/operation.jsp").forward(request, + response); + } +} + diff --git a/website/src/org/torproject/metrics/web/ToolsServlet.java b/website/src/org/torproject/metrics/web/ToolsServlet.java deleted file mode 100644 index d538512..0000000 --- a/website/src/org/torproject/metrics/web/ToolsServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2016 The Tor Project - * See LICENSE for licensing information */ - -package org.torproject.metrics.web; - -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -public class ToolsServlet extends HttpServlet { - - private static final long serialVersionUID = -7868806710366794044L; - - @Override - public void doGet(HttpServletRequest request, - HttpServletResponse response) throws IOException, ServletException { - - /* Forward the request to the JSP that does all the hard work. */ - request.getRequestDispatcher("WEB-INF/tools.jsp").forward(request, - response); - } -} - diff --git a/website/web/WEB-INF/development.jsp b/website/web/WEB-INF/development.jsp new file mode 100644 index 0000000..183df9c --- /dev/null +++ b/website/web/WEB-INF/development.jsp @@ -0,0 +1,39 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<jsp:include page="top.jsp"> + <jsp:param name="pageTitle" value="Development – Tor Metrics"/> + <jsp:param name="navActive" value="Development"/> +</jsp:include> + + <div class="container"> + <ul class="breadcrumb"> + <li><a href="index.html">Home</a></li> + <li class="active">Development</li> + </ul> + </div> + + <div class="container"> + <h1>Development</h1> +<ul> +<li><a href="https://play.google.com/store/apps/details?id=com.networksaremadeofstring.anonionooid">AnOnionooid</a> is an Android app that helps find and explore Tor relays and bridges.</li> +<li>Tor's <a href="https://gitweb.torproject.org/tor.git/tree/scripts/maint/updateFallbackDirs.py">fallback directories script</a> generates a list of stable directories.</li> +<li><a href="https://github.com/duk3luk3/onion-py">OnionPy</a> provides memcached support to cache queried data.</li> +<li><a href="https://nos-oignons.net/Services/index.en.html">Nos oignons</a> visualizes bandwidth histories of their relays.</li> +<li><a href="https://metrics.torproject.org/uncharted-data-flow.html">metrics-lib</a> is a Java library to fetch and pars +e Tor descriptors.</li> +<li><a href="https://stem.torproject.org/">Stem</a> is a Python library that parses Tor descriptors.</li> +<li><a href="https://github.com/meejah/txtorcon">Txtorcon</a> is an asynchronous Tor controller library written in Twiste +d Python.</li> +<li><a href="https://github.com/NullHypothesis/zoossh">Zoossh</a> is a parser written in Go for Tor-specific data formats +.</li> +<li><a href="https://savannah.nongnu.org/projects/koninoo/">koninoo</a> is a simple Java command line interface for query +ing Onionoo data.</li> +<li><a href="https://gitweb.torproject.org/user/phw/exitmap.git">Exitmap</a> is a fast and extensible scanner for Tor exi +t relays.</li> +<li><a href="https://gitweb.torproject.org/user/phw/sybilhunter.git/">Sybilhunter</a> attempts to detect Sybil attacks on + the Tor network.</li> +</ul> + </div> + +<jsp:include page="bottom.jsp"/> + diff --git a/website/web/WEB-INF/operation.jsp b/website/web/WEB-INF/operation.jsp new file mode 100644 index 0000000..8888183 --- /dev/null +++ b/website/web/WEB-INF/operation.jsp @@ -0,0 +1,33 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<jsp:include page="top.jsp"> + <jsp:param name="pageTitle" value="Operation – Tor Metrics"/> + <jsp:param name="navActive" value="Operation"/> +</jsp:include> + + <div class="container"> + <ul class="breadcrumb"> + <li><a href="index.html">Home</a></li> + <li class="active">Operation</li> + </ul> + </div> + + <div class="container"> + <h1>Operation</h1> +<ul> +<li><a href="https://exonerator.torproject.org/">ExoneraTor</a> tells you if an IP was used by a Tor relay on a given date.</li> +<li><a href="https://atlas.torproject.org/">Atlas</a> displays data about single relays and bridges in the Tor network.</li> +<li><a href="https://compass.torproject.org/">Compass</a> groups current relays in different ways to measure Tor's network diversity.</li> +<li><a href="https://oniontip.com/">OnionTip</a> distributes bitcoin donations to relays that can receive them.</li> +<li><a href="https://consensus-health.torproject.org/">Consensus Health</a> displays information about the current directory consensus and votes.</li> +<li><a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-consensus-health">Consensus Issues</a> emails directory authority operators about consensus problems.</li> +<li><a href="https://onionview.codeplex.com/">Check</a> uses<a href="https://www.torproject.org/projects/tordnsel.html.en">TorDNSEL</a> data to tell users whether they are using Tor or not.</li> +<li><a href="http://lists.infolabe.net/lists/listinfo/infolabe-anomalies">OII's anomaly detection system</a> ranks countries by how anomalous their Tor usage is.</li> +<li><a href="https://tor-explorer-10kapart2016.azurewebsites.net/">Tor Explorer</a> displays data on each individual Tor node.</li> +<li>A <a href="https://duckduckgo.com/">DuckDuckGo</a> search with "tor node" keywords displays Tor node details.</li> +<li><a href="https://onionview.codeplex.com/">OnionView</a> plots the location of active Tor nodes on an interactive map of the world.</li> +</ul> + </div> + +<jsp:include page="bottom.jsp"/> + diff --git a/website/web/WEB-INF/research.jsp b/website/web/WEB-INF/research.jsp index 3ec2e21..d58cff3 100644 --- a/website/web/WEB-INF/research.jsp +++ b/website/web/WEB-INF/research.jsp @@ -58,5 +58,13 @@
</div>
+ <div class="container"> +<ul> +<li><a href="https://torps.github.io/">TorPS</a> simulates changes to Tor's path selection algorithm using archived data.</li> +<li><a href="https://shadow.github.io/">Shadow</a> uses archived Tor directory data to generate realistic network topolog +ies.</li> +</ul> + </div> + <jsp:include page="bottom.jsp"/>
diff --git a/website/web/WEB-INF/tools.jsp b/website/web/WEB-INF/tools.jsp deleted file mode 100644 index b68d6ba..0000000 --- a/website/web/WEB-INF/tools.jsp +++ /dev/null @@ -1,136 +0,0 @@ -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<html> -<head> - <title>Tor Metrics</title> - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> - <link href="css/stylesheet-ltr.css" type="text/css" rel="stylesheet"> - <link href="css/bootstrap.min.css" type="text/css" rel="stylesheet"> - <link href="images/favicon.ico" type="image/x-icon" rel="shortcut icon"> -</head> -<body> - <div class="center"> - <div class="main-column"> - <h2><a href="/"><img src="images/metrics-logo.png" width="153" height="200" alt="Metrics logo"><img src="images/metrics-wordmark.png" width="384" height="50" alt="Metrics wordmark"></a></h2> - <br> - -<p>"Tor metrics are the ammunition that lets Tor and other security -advocates argue for a more private and secure Internet from a position -of data, rather than just dogma or perspective." -<i>- Bruce Schneier (June 1, 2016)</i></p> - - <!-- Navigation start --> - <a href="index.html">Metrics</a> | - <a href="about.html">About</a> | - <a href="news.html">News</a> | - Tools | - <a href="research.html">Research</a> - <br> - <br> - <!-- Navigation end --> - -<h1>Tools</h1> -<br> - -<p>We list some tools that you can use to collect data about Tor. We don't use -all of the tools listed here. We use CollecTor to collect (relay data, bridge -data, etc), OONI to collect (data, data, data), and Onionoo to collect (data, -data, data).</p> - -<p>With these other tools, you can measure different things about Tor that we -currently do not! We encourage you to do so if you are curious, want check up on -your relays, or conduct some research.</p> - -<h2>Our sources</h2> - -<ul> -<li><a href="https://collector.torproject.org/">CollecTor</a> collects data from -various nodes and services in the public Tor network.</li> -<li><a href="https://ooni.torproject.org/">OONI</a>, detects censorship, -surveillance and traffic manipulation on the internet.</li> -<li><a href="https://onionoo.torproject.org/">Onionoo</a> provides current and -past data on relays and bridges to other services.</li> -</ul> - -<h2>Others</h2> - -<ul> -<li><a href="https://gitweb.torproject.org/user/phw/exitmap.git">Exitmap</a> is -a fast and extensible scanner for Tor exit relays.</li> -<li><a href="https://github.com/robgjansen/onionperf">OnionPerf</a> measures the -performance of onion services.</li> -<li><a href="https://gitweb.torproject.org/torperf.git">Torperf</a> measures Tor -performance with a set of utilities and Python scripts.</li> -<li><a href="https://www.torproject.org/projects/tordnsel.html.en">TorDNSEL</a> -publishes lists of IP addresses of multi-homed Tor exits.</li> -<li><a -href="https://gitweb.torproject.org/user/phw/sybilhunter.git/%22%3ESybilhunter</a> -attempts to detect Sybil attacks on the Tor network.</li> -<li><a href="https://exonerator.torproject.org/">ExoneraTor</a> tells you if an -IP was used by a Tor relay on a given date.</li> -<li><a href="https://torps.github.io/">TorPS</a> simulates changes to Tor's path -selection algorithm using archived data.</li> -<li><a -href="https://play.google.com/store/apps/details?id=com.networksaremadeofstring.an...</a> -is an Android app that helps find and explore Tor relays and bridges.</li> -<li><a href="https://atlas.torproject.org/">Atlas</a> displays data about single -relays and bridges in the Tor network.</li> -<li><a href="https://compass.torproject.org/">Compass</a> groups current relays in -different ways to measure Tor's network diversity.</li> -<li><a href="https://oniontip.com/">OnionTip</a> distributes bitcoin donations -to relays that can receive them.</li> -<li><a href="https://onionview.codeplex.com/">OnionView</a> plots the location -of active Tor nodes on an interactive map of the world.</li> -<li><a href="https://consensus-health.torproject.org/">Consensus Health</a> -displays information about the current directory consensus and votes.</li> -<li><a -href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-consensus-health%2... -Issues</a> emails directory authority operators about consensus problems.</li> -<li><a href="https://onionview.codeplex.com/">Check</a> uses<a -href="https://www.torproject.org/projects/tordnsel.html.en%22%3ETorDNSEL</a> data to -tell users whether they are using Tor or not.</li> -<li><a href="https://shadow.github.io/">Shadow</a> uses archived Tor directory -data to generate realistic network topologies.</li> -<li><a href="http://lists.infolabe.net/lists/listinfo/infolabe-anomalies">OII's -anomaly detection system</a> ranks countries by how anomalous their Tor usage -is.</li> -<li>Tor's <a -href="https://gitweb.torproject.org/tor.git/tree/scripts/maint/updateFallbackDirs.... -directories script</a> generates a list of stable directories.</li> -<li><a href="https://github.com/duk3luk3/onion-py">OnionPy</a> provides memcached support to cache queried data.</li> -</ul> - -<h2>Things we took out for now</h2> - -<ul> -<li><a href="http://tor2web.org/">Tor2web</a> is a web proxy for Tor Hidden -Services.</li> -<li><a href="https://tor-explorer-10kapart2016.azurewebsites.net/">Tor -Explorer</a> displays data on each individual Tor node.</li> -<li><a href="https://nos-oignons.net/Services/index.en.html">Nos oignons</a> -visualizes bandwidth histories of their relays.</li> -<li><a href="https://github.com/kloesing/challenger">challenger</a> aggregates -data from relays participating in EFF's 2014 Tor Challenge.</li> -<li>A <a href="https://duckduckgo.com/">DuckDuckGo</a> search with "tor node" -keywords displays Tor node details.</li> -<li><a -href="https://metrics.torproject.org/uncharted-data-flow.html%22%3Emetrics-lib</a> -is a Java library to fetch and parse Tor descriptors.</li> -<li><a href="https://stem.torproject.org/">Stem</a> is a Python library that -parses Tor descriptors.</li> -<li><a href="https://github.com/meejah/txtorcon">Txtorcon</a> is an asynchronous -Tor controller library written in Twisted Python.</li> -<li><a href="https://github.com/NullHypothesis/zoossh">Zoossh</a> is a parser written in Go for Tor-specific data formats.</li> -<li><a href="https://savannah.nongnu.org/projects/koninoo/">koninoo</a> is a -simple Java command line interface for querying Onionoo data.</li> -</ul> - - </div> - </div> - <div class="bottom" id="bottom"> - <%@ include file="footer.jsp"%> - </div> -</body> -</html> -