Skip to content

Instantly share code, notes, and snippets.

@TauSigma5
Last active September 17, 2021 16:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TauSigma5/0b0f1e9678ed09093237e5647a5aca6b to your computer and use it in GitHub Desktop.
Save TauSigma5/0b0f1e9678ed09093237e5647a5aca6b to your computer and use it in GitHub Desktop.

Keybase proof

I hereby claim:

  • I am tausigma5 on github.
  • I am tausigma5 (https://keybase.io/tausigma5) on keybase.
  • I have a public key ASDVsZgWCm-os5GMX7dH6INWPD09LzuwBHJDvno0g31w0Qo

To claim this, I am signing this object:

{
  "body": {
    "key": {
      "eldest_kid": "0120d5b198160a6fa8b3918c5fb747e883563c3d3d2f3bb0047243be7a34837d70d10a",
      "host": "keybase.io",
      "kid": "0120d5b198160a6fa8b3918c5fb747e883563c3d3d2f3bb0047243be7a34837d70d10a",
      "uid": "0553cdef531631ffa75fc0d7ffe82c19",
      "username": "tausigma5"
    },
    "merkle_root": {
      "ctime": 1614534555,
      "hash": "a79586ef1850be6ce62f2bdb237e69656a2f72d8d2e340bd51ae96c17fc743d0ff3d01c9cd7c613815c86a0b3719a04b446b0673672dd0376a80463008f25a13",
      "hash_meta": "9f1331fcbf9891dbd315b76647f023352013d4355b6cf74ff9802c76f0660d89",
      "seqno": 19246924
    },
    "service": {
      "entropy": "BeQInLVtOkMF4JIUwcdV6ABa",
      "name": "github",
      "username": "tausigma5"
    },
    "type": "web_service_binding",
    "version": 2
  },
  "client": {
    "name": "keybase.io go client",
    "version": "5.6.1"
  },
  "ctime": 1614534568,
  "expire_in": 504576000,
  "prev": "3294c63c08c6f9f8ea0541597b26321c5d304baf117e4885eca26c00028d0044",
  "seqno": 4,
  "tag": "signature"
}

with the key ASDVsZgWCm-os5GMX7dH6INWPD09LzuwBHJDvno0g31w0Qo, yielding the signature:

hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEg1bGYFgpvqLORjF+3R+iDVjw9PS87sARyQ756NIN9cNEKp3BheWxvYWTESpcCBMQgMpTGPAjG+fjqBUFZeyYyHF0wS68RfkiF7KJsAAKNAETEIAw5Wxu3cxHBWYo+5plhxTldGq8CCbjX6rUI3qAPljO6AgHCo3NpZ8RAiWnTzXRIfpYm60aHZSlDFExhMHC4GMDwd+ZM3GvbGgzfqEbrfF6uc7pF2AhdTjBUps3p4sM/dOZeBdjwxr6CD6hzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEIDdCT/4Rw0Z6NuOVrxE6A9dIg4roamcbccqBamKGPCTYo3RhZ80CAqd2ZXJzaW9uAQ==

And finally, I am proving ownership of the github account by posting this as a gist.

My publicly-auditable identity:

https://keybase.io/tausigma5

From the command line:

Consider the keybase command line program.

# look me up
keybase id tausigma5
input_graph = [
[0, 1, 0, 0, 1],
[1, 0, 1, 1, 1],
[0, 0, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 0, 1, 0],
]
assert len(input_graph) == len(input_graph[0])
def get_pages_connect_to_page(page_num):
connected_pages = []
for i, row in enumerate(input_graph):
if row[page_num] == 1:
connected_pages.append(i)
return connected_pages
def generate_out_link_counts():
out_link_count = {}
for i in range(len(input_graph)):
out_link_count[i] = get_outgoing_connections(i)
return out_link_count
def dot_product(matrix_a, matrix_b):
return [[sum(matrix_a[i][k]*matrix_b[k][j] for k in range(len(matrix_b))) for j in range(len(matrix_b[0]))] for i in range(len(matrix_a))]
def get_outgoing_connections(page_num):
total = 0
for val in input_graph[page_num]:
total += val
return total
def create_matrix_o_constants(size):
retval = []
for x in range(size):
retval.append([-0.15])
return retval
def transposeMatrix(m):
return list(map(list, zip(*m)))
def getMatrixMinor(m, i, j):
return [row[:j] + row[j+1:] for row in (m[:i]+m[i+1:])]
def getMatrixDeternminant(m):
# base case for 2x2 matrix
if len(m) == 2:
return m[0][0]*m[1][1]-m[0][1]*m[1][0]
determinant = 0
for c in range(len(m)):
determinant += ((-1)**c)*m[0][c] * \
getMatrixDeternminant(getMatrixMinor(m, 0, c))
return determinant
def getMatrixInverse(m):
determinant = getMatrixDeternminant(m)
# special case for 2x2 matrix:
if len(m) == 2:
return [[m[1][1]/determinant, -1*m[0][1]/determinant],
[-1*m[1][0]/determinant, m[0][0]/determinant]]
# find matrix of cofactors
cofactors = []
for r in range(len(m)):
cofactorRow = []
for c in range(len(m)):
minor = getMatrixMinor(m, r, c)
cofactorRow.append(((-1)**(r+c)) * getMatrixDeternminant(minor))
cofactors.append(cofactorRow)
cofactors = transposeMatrix(cofactors)
for r in range(len(cofactors)):
for c in range(len(cofactors)):
cofactors[r][c] = cofactors[r][c]/determinant
return cofactors
def zeros(y, x):
result = []
for i in range(y):
row = []
for j in range(x):
row.append(0)
result.append(row)
return result
def print_matrix(input_matrix):
for row in input_matrix:
print(row)
constants_matrix = create_matrix_o_constants(len(input_graph))
out_link_counts = generate_out_link_counts()
matrix_o_coefficients = zeros(len(input_graph), len(input_graph))
for page_num, page in enumerate(input_graph):
connected_pages = get_pages_connect_to_page(page_num)
for connected_page in connected_pages:
matrix_o_coefficients[page_num][connected_page] = (
1/out_link_counts[connected_page]) * 0.85
matrix_o_coefficients[page_num][page_num] = -1
print_matrix(matrix_o_coefficients)
print()
print_matrix(dot_product(getMatrixInverse(matrix_o_coefficients), constants_matrix))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment