Where to start? Consistency.

Well, the world is changing. Cornavirus is spreading and forcing people to really re-evaluate what is important. Having an outlet for my thinking is an important part of me staying positive and healthy in times which are anything but positive and healthy.

I do think a lot. When I am driving and listening to podcasts, when I have moments of quiet during the day. I don’t have as much opportunity as I would like to really think deeply and engage with my own thoughts and feeling on a topic.

Future Self Journal

One practice that has really helped me, is the idea of Future Self Journaling. (How to Get the Most Out of Future Self Journaling)

Example Journal Entry
An example of an entry in my future self journal.

The practice of taking time to answer 6 simple questions or statements:

  1. My daily affirmation:
  2. Today I will focus on shifting my pattern of:
  3. I am grateful for:
  4. The person I am becoming will experience more:
  5. I have an opportunity to be my future self today when I:
  6. When I think about who I am becoming I feel:

These questions take about 10 minutes to answer but allow you the chance to really focus on changing a behaviour. I’ve changed several behaviours over the last year.


Last April I decided to focus on losing weight. I’m now nearly 3 stones lighter.

Last June I decided to stop drinking alcohol. I now don’t drink any alcohol.

The first week February I started to wake up on my alarm, and FSJ’ing. The second week in February I woke up 10 minutes before my original alarm and continued the FSJ’ing. The third Week in February I got up another 10 minutes earlier than my original alarm and starting doing LISS cardio. (Low Impact Solid State vs HIIT)

Along side that I logged every meal for 3 weeks straight in MyFitnessPal and staying in a consistent calorie deficit.

Consistency is Key 🔑

How do you develop consistency?

It’s actually pretty simple. Habit Chaining or Habit Stacking. Take something you already do. Waking up is a good example, we all have to do that.

Pick the simplest activity you can think of to do. For me it was just to not hit snooze and just get up.

do it once.

Then do it again the next day. Repeat for 1 week. I take the weekends off, but set the bar just a tiny bit higher the next week. So I set the alarm for 10 minutes earlier than last week, and have an activity to do – FSJ.

Some things to do:

  1. Make your first task immediate and easy (I write in my journal in our en-suite bathroom so I don’t wake my family)
  2. Prepare for it. (I leave my exercise clothes and journal in the en-suite bathroom the night before. I have a bottle of water and an energy drink at the bottom of the stairs. I have my trainers ready at the door.)

Oh no, I broke the chain 😱

Forget about it, no guilt. Straight back to it the next day. One mistake does not make you a bad person. Learn from it. Did you go to bed later then usual? Did you not set an easy task to do? Do you not minimise resistance? Did you not prepare properly?

Just do it

Try it. Stick with it. If you can consistently make yourself do things, you can control yourself. You control your thoughts, your actions. You give yourself power.

Why now?

In a world that is so inconsistent, your own consistency is even more important. In a world where everyday is blurring into one long day of home working, child care, and waiting, having the integrity to develop yourself is vital.

Do it for yourself. Be consistent.

Learning from 0 – Part 1

I’ve been meaning for a long time to start learning about some of the fundamentals of Computer Science and have recently got very interested in Computing history. Whether it is the story of J. Presper Eckert and John Mauchly and their work on ENIAC or Alan Turing and his life, I am really interested in where all of this amazing technology that we mostly take for granted started. I want to learn about the people and the technology.

To start with I wanted to learn about digital circuits and how they work. I started with a simple idea, creating a binary calculator using logic gates.

First step was to create an adder. To do this, I needed to make a half-adder circuit. I decided it create it in Python as this is the language I use most often but I plan to re-create it in Javascript to go on the main projects page of www.paulwill.co.uk

The Half Adder

The logic for a half adder goes like this:

Try it here.

This logic led to me writing the same thing in Python. Python has bitwise Exclusive OR capabilities but I am implementing my half-adder in boolean logic, using only True or False. Here is the code:

def halfadder(a,b):

    if a != b:
        s = True
        c = False
        return s, c
    elif a == True and b == True:
        s = False
        c = True
        return s, c
        s = False
        c = False
        return s, c

The truth table for this was:


This works, and the inputs for the truth table looks like this in Python:

print(halfadder(False, False))
print(halfadder(True, False))
print(halfadder(False, True))
print(halfadder(True, True))

The outputs produced are correct:

(False, False)
(True, False)
(True, False)
(False, True)

So far so good, next post a Full Adder.

What to learn to be a Full Stack Web Developer

Grey pencils on Yellow Background.

Below is a list of web development technologies, I would like to get familiar with to help develop (or re-develop) my skills in web development. I’ll update this list as I go, this may take some time…

HTML – Learnt this when I was 13 and have been having fun on and off with it ever since.
CSS – Started to take off more as I left web development, but is massively used for styling as well and layout on all web pages now.
Javascript – Using the Document Object Model to mess with the browser. I started working on simple scripts but nothing too advanced. The first real programming language I used was PHP.
VS Code – as an IDE, I also like Notepad++
Chrome – as a browser and a debugging tool.
React Development Tools in Chrome too.
Photoshop for layouts and graphics.
GitHub for version control.
Invision wireframe tool for design.
HTML5 source maps to speed up pages.

CSS animation – To sexy up pages.
Node.js/Yarn – need to learn
NPM – need to learn
Module bundling – webpack – need to learn
SASS-CSS need to learn
ECMA Script 6 – need to learn
Bbel transpile – need to learn
Bbel flow – need to learn
Typescript – need to learn
React and JSX – need to learn
Angular – need to learn
ESlint – need to learn
Jest testing — need to learn
Mocha testing – need to learn
Nginx – need to learn
Apache2 – need to learn
Postgresql db – need to learn
React – need to learn
Microservices – need to learn about
Azure or AWS or Heroku – need to learn
Web Assembly – Need to learn
Webgl – Need to learn
PHP or Python – These I know…

Photo by Joanna Kosinska on Unsplash