<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/karsten/metrics-web, branch metrics-web-1.1.0</title>
<subtitle>Karsten's metrics web repository</subtitle>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/'/>
<entry>
<title>Prepare for 1.1.0 release.</title>
<updated>2018-05-29T13:21:45+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-29T13:21:45+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=1284c8adf8158703f6abf2dccb6da72dc62267c7'/>
<id>1284c8adf8158703f6abf2dccb6da72dc62267c7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace Gson with Jackson.</title>
<updated>2018-05-29T13:18:52+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-22T19:41:18+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=205d6da163cae97fe167dd3a89bad52e4c06375c'/>
<id>205d6da163cae97fe167dd3a89bad52e4c06375c</id>
<content type='text'>
Note that a side-effect of this change is that the generated news.json
uses slightly different formatting. These are just cosmetic changes
that don't have any effect on provided website content.

Implements #26169.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Note that a side-effect of this change is that the generated news.json
uses slightly different formatting. These are just cosmetic changes
that don't have any effect on provided website content.

Implements #26169.
</pre>
</div>
</content>
</entry>
<entry>
<title>Be clearer about Onionoo's exit_addresses field.</title>
<updated>2018-05-29T13:08:45+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-29T13:08:45+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=18280f6b00e0d7726d42781fabda725c5b802059'/>
<id>18280f6b00e0d7726d42781fabda725c5b802059</id>
<content type='text'>
Fixes #26031.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #26031.
</pre>
</div>
</content>
</entry>
<entry>
<title>Append _p to all plot_* and write_* parameters.</title>
<updated>2018-05-29T12:26:09+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-17T09:37:36+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=7366398fdaf3caf6e02664d070e7c35dea29cc4b'/>
<id>7366398fdaf3caf6e02664d070e7c35dea29cc4b</id>
<content type='text'>
This change makes our R code a little more readable in cases where
parameter names match data column names.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change makes our R code a little more readable in cases where
parameter names match data column names.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make all parameters in write_* functions optional.</title>
<updated>2018-05-29T12:24:03+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-11T09:54:45+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=167e72b5a06cec3753f7f952fb3e3247bae943a5'/>
<id>167e72b5a06cec3753f7f952fb3e3247bae943a5</id>
<content type='text'>
We now permit parameters in write_* functions to be omitted. The
effect is that we're not filtering if a parameter is missing, thus
producing a CSV file with more rows.

At the same time we're adding columns for data that was previously
pre-determined by parameter values. For example, if a user specified a
given country in a parameter, we didn't have to include a country
column containing only that country. Now we need to put that column
back.

Implements #25383.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We now permit parameters in write_* functions to be omitted. The
effect is that we're not filtering if a parameter is missing, thus
producing a CSV file with more rows.

At the same time we're adding columns for data that was previously
pre-determined by parameter values. For example, if a user specified a
given country in a parameter, we didn't have to include a country
column containing only that country. Now we need to put that column
back.

Implements #25383.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid underscores in write_* function parameters.</title>
<updated>2018-05-29T12:22:31+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-10T19:30:54+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=3f1cafdb5c4dffecbeab2a6688218d91f35c79ce'/>
<id>3f1cafdb5c4dffecbeab2a6688218d91f35c79ce</id>
<content type='text'>
We added underscores to parameters in write_* functions when they
would otherwise conflict with columns in the processed data. For
example, if a graph supports a `country` parameter and the data also
contains a `country` column, dplyr/tidyr won't know which `country` we
mean. That's why we renamed the parameter to `country_`.

However, we're soon going to make parameters optional, and if R
receives a couple of parameters of which one has the name `country`,
it can't match that to its `country_` parameter. We need to change the
parameter back to `country` for this to work, which conflicts with the
issue we were fixing earlier.

Turns out there's a way to use the same name for parameter and data
column: whenever we want to use the parameter, we use the
quasiquotation operator `!!` which evaluates its argument early and
inlines the result; and whenever we want to refer to the data column,
we just refer to it by name, without that operator.

Prepares #25383.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We added underscores to parameters in write_* functions when they
would otherwise conflict with columns in the processed data. For
example, if a graph supports a `country` parameter and the data also
contains a `country` column, dplyr/tidyr won't know which `country` we
mean. That's why we renamed the parameter to `country_`.

However, we're soon going to make parameters optional, and if R
receives a couple of parameters of which one has the name `country`,
it can't match that to its `country_` parameter. We need to change the
parameter back to `country` for this to work, which conflicts with the
issue we were fixing earlier.

Turns out there's a way to use the same name for parameter and data
column: whenever we want to use the parameter, we use the
quasiquotation operator `!!` which evaluates its argument early and
inlines the result; and whenever we want to refer to the data column,
we just refer to it by name, without that operator.

Prepares #25383.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update to latest metrics-lib.</title>
<updated>2018-05-26T19:43:34+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-26T19:43:34+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=1072602b66074e8b86f6a5880005eede67cdbdb0'/>
<id>1072602b66074e8b86f6a5880005eede67cdbdb0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Put back updated OOI link.</title>
<updated>2018-05-26T19:43:03+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-26T19:35:07+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=ca6353e188e277a4461354e7e3aad6c63cd4212b'/>
<id>ca6353e188e277a4461354e7e3aad6c63cd4212b</id>
<content type='text'>
Resolves #25926.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Resolves #25926.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix flaw in noise-removing code of hidserv module.</title>
<updated>2018-05-25T19:38:17+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-18T14:29:42+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=52b1051fb14f4091d3e1e02b0497bad5b0d66ca6'/>
<id>52b1051fb14f4091d3e1e02b0497bad5b0d66ca6</id>
<content type='text'>
In the technical report that the hidserv module is based on we write:

"When processing hidden-service statistics, we need to handle the fact
that they have been obfuscated by relays. As first step, we're
attempting to remove the additive Laplace-distributed noise by
rounding up or down to the nearest multiple of bin_size. The idea is
that it's most likely that noise was added to the closest right side
of a bin than to the right side of another bin. In step two, we're
subtracting half of bin_size, because the relay added between 0 and
bin_size − 1 to the originally observed value."

However, our code has a flaw: we use integer truncation rather which
always rounds toward zero, whereas we really want to use the floor
function which rounds towards negative infinity.

The fix is to use Math.floorDiv() for the division rather than common
integer division and truncation.

Fixes #26022.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the technical report that the hidserv module is based on we write:

"When processing hidden-service statistics, we need to handle the fact
that they have been obfuscated by relays. As first step, we're
attempting to remove the additive Laplace-distributed noise by
rounding up or down to the nearest multiple of bin_size. The idea is
that it's most likely that noise was added to the closest right side
of a bin than to the right side of another bin. In step two, we're
subtracting half of bin_size, because the relay added between 0 and
bin_size − 1 to the originally observed value."

However, our code has a flaw: we use integer truncation rather which
always rounds toward zero, whereas we really want to use the floor
function which rounds towards negative infinity.

The fix is to use Math.floorDiv() for the division rather than common
integer division and truncation.

Fixes #26022.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't terminate the hidserv module when parsing descriptors.</title>
<updated>2018-05-25T19:38:08+00:00</updated>
<author>
<name>Karsten Loesing</name>
<email>karsten.loesing@gmx.net</email>
</author>
<published>2018-05-18T14:26:12+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/karsten/metrics-web.git/commit/?id=4333d0666dbb8a252bd85d1cc79ebd18dc84d4bd'/>
<id>4333d0666dbb8a252bd85d1cc79ebd18dc84d4bd</id>
<content type='text'>
This issue came up when reprocessing descriptor archives for #26022:
we'd terminate the hidserv module when running into an issue with
parsing descriptors, where a possible issue is a consensus without a
"bandwidth-weights" line.

This seems wrong. It's okay to print out a warning in this case. But
in general, we don't want to abort the entire module in this case.

Related to #26022.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This issue came up when reprocessing descriptor archives for #26022:
we'd terminate the hidserv module when running into an issue with
parsing descriptors, where a possible issue is a consensus without a
"bandwidth-weights" line.

This seems wrong. It's okay to print out a warning in this case. But
in general, we don't want to abort the entire module in this case.

Related to #26022.
</pre>
</div>
</content>
</entry>
</feed>
