It was a long week for me. I've decided to spend these two days just looking over things I've already covered. It's so easy to forget fundamentals when you do not build revision into your learning.
Struggling with Blockchain
March 22, 2018
Lots of this code doesn't make sense and I am finding it a struggle to remember what comes next. I think the way to approach it is to perhaps map out the steps I need to take; otherwise it just seems like a convoluted mess. I also need to look at lists again. Onwards and upwards.
Blockchain
March 20, 2018
This week I am working through a tutorial on creating a simple Blockchain. Some of the stuff, I don't yet understand but as I am following a separate course, this week's lesson is to look through sample code on the Internet.
import hashlib as hasher
class Block:
def __init__(self, index, timestamp, data, previous_hash):
self.index = index
self.timestamp = timestamp
self.data = data
self.previous_hash = previous_hash
self.hash = self.hash_block()
def hash_block(self):
sha = hasher.sha256()
sha.update(str(self.index) +
str(self.timestamp) +
str(self.data) +
str(self.previous_hash))
return sha.hexdigest()
import datetime as date
def create_genesis_block():
# Manually construct a block with
# index zero and arbitrary previous hash
return Block(0, date.datetime.now(), "Genesis Block", "0")
def next_block(last_block):
this_index = last_block.index + 1
this_timestamp = date.datetime.now()
this_data = "Hey! I'm block " + str(this_index)
this_hash = last_block.hash
return Block(this_index, this_timestamp, this_data, this_hash)
# Create the blockchain and add the genesis block
blockchain = [create_genesis_block()]
previous_block = blockchain[0]
# How many blocks should we add to the chain
# after the genesis block
num_of_blocks_to_add = 20
# Add blocks to the chain
for i in range(0, num_of_blocks_to_add):
block_to_add = next_block(previous_block)
blockchain.append(block_to_add)
previous_block = block_to_add
# Tell everyone about it!
print "Block #{} has been added to the blockchain!".format(block_to_add.index)
print "Hash: {}\n".format(block_to_add.hash)
Mastercard
March 16, 2018
Interest rates are high on credit cards. Use the script below to calculate what you are paying on an APR of 1.45%.
# -*- coding: utf-8 -*-
def percentage(balance, divide, interest):
return balance / divide * interest
balance = (float(raw_input("\nEnter Balance: ")))
new_total = percentage(balance, 100, 1.45)
print "\nOn a balance of £{0:.2f} there is £{1:.2f} in interest.\n".format (balance, new_total)
Ikebukuro Owl Police Box
March 14, 2018
Atlas Obscura:
Since the police box is within a stone’s throw of Ikebukuro Station and very eye-catching, many people use it as a meeting point. It’s probably one of the safest meeting points in Tokyo, right next to police officers.