Plutonic Rainbows

Easter Weekend

It's cold, wet and raining in my part of the world. So here's some Python for converting Celsius to Fahrenheit.

# -*- coding: utf-8 -*-

x = float(raw_input("°C: "))

fahrenheit = x * 1.8 + 32

print "Fahrenheit: {0:.1f}°F".format (fahrenheit)

Staying indoors, I am listening to the new album Tahoe from Dedekind Cut - and also enjoying the previous one. There is also a new album from Chris Carter that sounds good. As well as a Flame 1 release which features Burial in a collaboration with The Bug.

Boomkat:

London’s dankest relay palpably paranoid pressures from the capital on The Bug's newly minted Pressure label, hopefully the start of an ongoing collaboration between the pair.

Spying those hours of the dance when the smoke machines are puffing but there’s nobody there yet, Fog finds them melding charred bass hustle with billowing greyscale atmospheres in a time-honoured style shared by both artists.

On the flip, Shrine distills their meditative intensity to more suspenseful degrees with exceedingly brittle drums bearing the huge, brooding weight of a slowed down dread bass and glowering pads = minimal fuss for deadly, concentrated impact.

Revision

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

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

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

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)