-
Notifications
You must be signed in to change notification settings - Fork 0
/
actual_docs.txt
57 lines (43 loc) · 2.29 KB
/
actual_docs.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Requirements:
1) authenticate with the "http://authenticationtest.herokuapp.com/login/
2) Derive RTT and goodput time.
Definitions:
Round-trip delay time
From Wikipedia, the free encyclopedia
In telecommunications, the round-trip delay time (RTD) or round-trip time (RTT)
is the length of time it takes for a signal to be sent plus the length of time
it takes for an acknowledgment of that signal to be received. This time delay
therefore consists of the propagation times between the two points of a
signal.
Goodput
From Wikipedia, the free encyclopedia
In computer networks, goodput is the application-level throughput (i.e. the
number of useful information bits delivered by the network to a certain
destination per unit of time). The amount of data considered excludes protocol
overhead bits as well as retransmitted data packets. This is related to the
amount of time from the first bit of the first packet sent (or delivered) until
the last bit of the last packet is delivered.
Design:
Authenticate, assuming basic auth as undefined, and pycurl lends itself to that.
Send one packet to get RTT. Fill it with a good amount of data, but not so much
that TCP splits it up into two packets, so send 1kB as the most data that can
usually be contained in a packet is 1460 bytes.
Assumptions:
The "good" data is 1000 bytes.
Additional Notes:
Clearly the username and password should be extracted from a pickled hash of
the actual username and password instead of including them in the code, which
is insane. I however did not have time to complete this. However if I do get
the job, I will make sure I budget time to encode usernames and passwords
appropriately, not like an idiot.
The project should have some tests. However in the case of this small set of
functionality it can be assusmed that the requests are what is made and the
frequency of requests is bound by the enclosing loop.
Unfortunately I was not able to authenticate with the Heroku server; I didn't
have time to work this out.
Obvious extensions:
There should be a database so that scores can be usefully compared and queried
in an appropriate manner, outputting data into some sort of visualisation
library, for example matplotlib for a user experience or a regular task done
with Celery or the like for web monitoring. Munin could be extended for this
purpose.