Plutonic Rainbows

Apple Credit Card

Apple getting into credit cards. I feel deeply uneasy about this but I don't know exactly why. I think it's an uncomfortable look for them but hey, it's yet another potential revenue stream and money is what matters - don't let Apple ever convince you of anything else - despite all the empty platitudes and virtue-signalling at their events. Also don't be fooled by the Apple privacy hype. Goldman Sachs are apparently being trusted with all the information.

The Verge:

Similarly, Apple’s approach to data privacy differs from other credit card companies: Apple is banking on Goldman Sachs to secure users’ credit card data, which also means that Apple won’t be the one held responsible in the event of a breach. Again, Goldman Sachs declined to comment.

I don't think this is going to be anywhere near as exclusive as all the Apple fans would like - despite the Titanium design. American Express and Chase Sapphire (among others) are where the (relative) exclusivity lies with ownership fees as much as $550 just to own the card for one year. This is more like a tier 2 card rather than a 4 or 5 offering.

In addition, metal cards are very much a USA/Canada thing; Europe not so much. Amex in the UK don't offer any cards in metal despite the sky-high ownership fees. I would not be surprised to see this launch in the UK as a plastic version. Hope I'm wrong as it will probably force Amex to up its game.

** As of 11th June 2019, Amex Platinum is now a metal card in the UK.

Introduction to Loops

A simple script for displaying how loops work.

i = 0

numbers = []

while i < 8:
    print "At the top i is now %d" % i
    numbers.append(i)

    i = i + 1
    print "Numbers now:", numbers
    print "Number at the bottom is now: %d" % i

print "The numbers:"

for num in numbers:
    print num

Salary Calculator 2

Here is a slightly modified script for the Salary Calculator. This time we are writing the result to a text file. Some folks over on the Python forum helped me with target.write(str(round(total, 2)).encode()) as I could not figure a way to round the decimal place correctly.

# -*- encoding: utf-8 -*-

from sys import argv
script, answer = argv

def salary(weeks, payments):
    return (weeks * payments)

weeks = (float(raw_input("Weeks: ")))
payments = (float(raw_input("Payments: ")))

total = salary(weeks, payments)

target = open(answer, 'w')
target.truncate()

target.write(str(round(total, 2)).encode())

target.close()

Salary Calculator

This script uses quite a few new things including a function. It calculates two user input values and then gives an answer depending on the outcome. The user is asked for the number of weeks and the payment each week.

# -*- encoding: utf-8 -*-

def salary(weeks, payments):
    return (weeks * payments)

weeks = (float(raw_input("Weeks: ")))
payments = (float(raw_input("Payments: ")))

total = salary(weeks, payments)

print "\nThe total is {0:.2f}".format (total)

if total < 7999 or total == 7999:
    print "That's not good enough.\n"

else:
    print "You are on target.\n"

The script also uses float and format for currencies and values that use decimal places. Don't forget to declare -*- encoding: utf-8 -*- at the beginning of the script.

Data Length

These few lines of code are useful to calculate the size of a file. Later, we'll combine it with another script.

from sys import argv
script, filename = argv

a1 = open(filename)
data = a1.read()

print "The size of the file is %r bytes." % len (data)