Goal setting for the goal-less

I want to start this post off by saying straight up that I’m not a life coach, motivational speaker or anything like that. I don’t think I have all the answers. However I found myself facing a problem and developed a solution for it and so I thought I would share it here.

I’ve always thought I was quite good at solving problems and achieving goals. If I have a goal and fail to achieve it, its more likely that I became disinterested in the goal than quit due to failure. However recently I found myself in the unusual position of not having any goals. I mean sure there were still things I wanted to achieve but no, “get you out of bed in the morning” type goals. The internet is full of videos about how to be motivated, how to achieve anything you want etc, but what happens when you don’t know what you want? Whats the use in being motivated with no direction to point the motivation at.

In the past I found myself in this position and I kind of just bimbled about getting on with my day to day life until I happened upon something that interested me. But this time I found it harder to accept just going through the motions, I definitely like to have something to aim at. So anyway, with the preamble out the way, let me get into what I have began doing to solve this situation.

The goal tree

The first thing I did was sit down and  try to make a list of things I thought I might like. Lets call them potential goals. When doing this I tried to make sure I followed the following rules…

  • Don’t be bound by limits. If you think you might like it, write it down. If its a yacht, living on mars, whatever. The point is, don’t let thoughts such as you’ll never be able to do that stop you writing it down. Not because i’m going to go all life coach on you and tell you that you can achieve anything, but because its just part of the process.
  • Don’t worry about the how, just the what. Similar to the above, don’t even begin thinking about how you could achieve these goals yet, it doesn’t matter, just write it down.
  • Don’t worry about the why, just the what. Again, if a goal pops into your head and you start questioning the worth-whileness of it, put it out of your head and write it down anyway.

So you might be thinking already, well what’s the point in writing down a bunch of goals that are probably unachievable, unrealistic or pointless? Well we will get to that in a moment, but basically we’re just creating some raw materials here from which to forge your true goals.

As an example, and at the risk of exposing my inner brain to all 6 of my blog readers, here’s the list I created…


That took me about 5 minutes to think up that list and I’m sure you’ll agree some are way more likely than others. And if I sat for longer I could think up more but as it was to turn out, it really didn’t matter, it is way more than enough to start. As you’ll see in a moment just the very first goal turned out to be the root of a goal tree that branched off in many directions.

I took the first goal “work from home” and thought about it for a moment. I came up with 4 questions that I thought I should ask myself about each of the goals in my list. The 4 questions were…

  1. Can I be more specific?
  2. Is this an end goal? Or is it just a means to an end?
  3. Why do you want this?
  4. Is this something new or is it an improvement on something that you already have.

The reasoning for these questions is as follows. I wanted the goal to be specific, so in the case of a very vague goal it would prompt me to think more precisely about what exactly it is I wanted. I wanted to know if this was an end goal or a means to an end. If it was an end goal I could go on to ask the final two questions. If it was just a means to an end, then you ask what end? And then that, or they, become your new goals to replace the old one. I’ll show this in practice in a moment if that’s confusing.

The final 2 questions. Why do you want this, this is your time to think about why you really want it, what are your motivations. Are they misguided, foolish, or just false? Have you been lying to yourself about what you want. Who knows. And the final question, is this something new or an improvement on something you already have. The purpose of this question is just to make it clear how near or far you may already be to your goal. If its something completely new there may be some ways to go, but if its just an improvement of what you already have, you may be able to move towards it incrementally.

The most important thing when asking these questions of yourself is that you are 100% totally honest. If you don’t know the answer, spend some time thinking about it. I’ve spend a good few hours on this process already and it’s still ongoing for me, and it’s been a huge shock to me to realize how little I actually know about what I really want. Bloody adverts!

So lets see it in practice…

The first root!

The first potential goal (root) was “work from home” and so the first thing I did was ask myself the 4 questions about working from home…

Can you be more specific: I currently work in the office and I’d like to work remotely from home, some or all of the time.

Is this an end goal? Or a means to an end?: I wouldn’t say it’s an end goal because the actual act of working at home is nothing special. The attraction for this is being able to sleep longer, drive less and work in an environment of my own choosing.

Why do you want this?:  The potential to choose my own hours is very appealing. Being able to sleep longer as I don’t like being tired and specifically not getting up early.

Is this something completely new, or an improvement on an existing thing?: The act of working from home is completely new.

The first branches

So I realized a few things when answering these 4 questions for this first goal. The first is that at any time when writing down your thoughts and answers to the 4 questions, sub-goals might pop up. At this point I realize it’s almost pointless to continue to answer the other questions because what you have essentially done is distill the goal that you thought of quickly into a more truer goal. In the case above; the goal of working from home, when properly thought about, broke down into the sub-goals of sleeping more, driving less and working in an environment of my own choosing.

What I had essentially done when saying to myself that I wanted to work from home was assume I already knew the best way to achieve the real goals I listed above.

The other thing I realized is that this tree could grow quite large, and writing it down on paper alone, or on word or whatever, wasn’t going to be enough to organize these thoughts and so I create a tree in excel…


So from here I took these 3 goals and once again asked the same 4 questions. Focusing just on the first goal of sleeping more led me down a path that took me this conclusion…


You can see this can become quite a long drawn out process. Below I’ll show a picture of the entire thing so far but just focusing on this bit for a moment notice that from my original goal I wrote down when brainstorming I’ve ended up getting to the truth of the goal, at least partly so far, and realized that what I actually want is to not be tired and not wake up early. And examining those statements more closely I realize that actually what I want is to have more energy, have less things that I HAVE to do and be able to set no alarm or at the very least have a potential 9 hours sleep every night.

From here I can sit down and think about the best ways to achieve those goals. Maybe it’ll turn out the best way to have more energy and not have to set an alarm really is to work from home, but now i’m working from the truth outwards, instead of aiming towards a goal that may or may not fulfill those true goals.

Just to give an idea how big this can get, from my one goal of working from home, I am still working on the tree and so far it looks like below. Once its complete I can move onto the next one.




High Intensity – Back and Biceps

In an earlier post I talked about the general principles I try and follow for every workout I do…How to get ripped for the rest of us – The general theory of getting ripped.

In this post I want to go into specifics of how I apply this to a back and bicep workout. As mentioned in the previous post I separate the workout into a strength building exercise at the beginning, and then follow this with some more focused hypertrophy work.

The strength builder:

My favorite strength builder is the weighted pull up. I start the work out a goal of 3 sets of 5 with 40kg weight (adjust this to suit your own current level). I use an underhand grip as this recruits more muscle groups, specifically the biceps and between sets I allow as much time as needed until I feel recovered and ready for the next set.

I ensure that I pull up as quickly as possible with the weight belt preventing me from kipping on the way up. I pull my chest completely to the bar and then lower back to the starting position over around 4 seconds. If I manage 5 reps I don’t just stop, I keep going until I am unable to finish a rep. At the point of failure I continue trying to pull for another 3-4 seconds before lowering slowly from whatever point I managed to get to.

On the final set only, in addition to this 3-4 seconds of effort after failure, I will also reattempt the final rep without rest 2-3 times, knowing full well the rep is impossible but still managing to carry out a partial rep.

weighted pull ups for strength

weighted pull ups for strength


The hypertrophy:

The first exercise I carry out for this part of the workout is a seated single arm cable row. My aim is around 10 reps but I don’t stop at 10 reps, I keep going until absolute failure as I will describe in a moment. The 10 reps is a target to allow me to adjust the weight as necessary in the following workout, ie if I hit 12 reps I will increase the weight next time.

So, my goal is 10 reps for 2 sets on each arm with very little rest between sets, one arm recovers while the other works.

The technique I use is again to pull back as quickly as possible while maintaining good form, and then slowly lower the weight over 3-4 seconds. At the point of failure I allow myself to use my body weight to help pull the cable, essentially cheating with bad form, and then ensuring good form on the 3-4 second lowering phase. Once I can’t lift the weight even with the body weight assistance I continue another 2-3 partial reps, knowing the rep can’t be completed but using as much range of motion as I can manage.

seated cable row

seated cable row

The final exercise is a bicep curl on the cable machine. I prefer to use the cable machine as I find with dumbells you lose resistance at the top of the movement. My aim for the curl is 1 set on each arm of around 12-15 reps, although usually only around 6-8 of these reps will be unassisted. Very little rest between the 2 arms in preferred.

For each set I pull quickly again and then lower slowly over around 3-4 seconds. At the point I can no longer complete a rep, I use my free hand to assist only as much as needed to complete the pull section of the movement, and then lower of 3-4 seconds without assistance. At the point I am unable to lower the weight slowly under control, the exercise is over.

cable bicep curl

cable bicep curl

So this workout should take less than 1 hour and depending on rest times can be completed in 30-40 minutes. There are a total of 9 sets, 3 for the pull ups, 4 sets of rows (2 for each arm) and 2 sets of curls (1 for each arm)

Cyber security case study: Bitsadmin ioc

Here’s a case study for anyone studying to move into cyber security or any existing cyber security analysts that want to look for this attack within their own environment, as is is a very recent attack. This post focuses only on identifying the attack and determining the scope of how many users and devices have been compromised before sending the information to the relevant teams for remediation.

For those simply wanting to check for this attack within their own environment, skip to the very bottom for a roundup of IOC’s.


One of our endpoint security systems alerted on a Bitsadmin indicator of compromise. our endpoint security tool gives the following description… “Bitsadmin is a command-line tool that can be used to create, download or upload jobs and monitor their progress. However it can also be used to maintain persistence and evade checks for usual persistence mechanisms. An attacker with Administrator rights can use the setnotifycmdline option to create a persistent job and then specify a /Resume option at a later time to execute the job. This mechanism allows the malware to survive reboots since the job is run repeatedly after a system restart. Moreover, Bitsadmin by default downloads files unless the destination server is running IIS with the required server component and /UPLOAD is specified in the command-line. While this is not by itself malicious, the command-line needs to be reviewed to ascertain the origin and intent.”

As i’m sure is the case for most organisations, we have a lot of false positives created by all our tools and so the first thing we want to do is try and verify if this is a genuine alert that needs to be investigated or a false positive The endpoint tool includes the command line arguments for when this process was executed and so that is the first piece of evidence I look at… (some info has been censored for confidentiality and privacy reasons)


That looks a bit small so if you’re unable to read that properly, the main thing I’m focusing on here is this section…


If the download had been some internal file on our own network that I could verify I wouldn’t be too worried after some verification. However as this is downloading something from an external source it is worth some investigation into what is being downloaded.

Running this site through Symantec site review shows the URL is categorized as a security risk and so is a known malicious site.  This is enough information for me to treat this as a genuine alert and not a false positive, as a download has occurred from a malicious site.


Using the endpoint tool, and looking at the processes running on the device and files created around the time of the alert, I can see an email was opened just prior to the alert being triggered. For this reason, I use our email security system to investigate what emails the user (identified from the command line argument) has received shortly before the alert was triggered.

Looking through the emails received by this user, one stands out as suspicious. Looking into the details of the email I can see a link contained within the email that looks suspicious and requires further investigation.


Checking this URL in Symantec site review also shows that it is malicious. (note if Symantec didn’t say this was malicious, I would carry out my own analysis to confirm).

Reviewing the end point tools it looks as though, when URL within the email is clicked, it downloads an xlsx file, which in turn runs a powershell script which in turn uses bitsadmin to download the payload.

At this point, I want to determine every user that has potentially been infected so their devices can be remediated. In order to do this, I want to compile a full list of emails received, a full list of the URLs contained within the emails and a full list of the URL’s that bitsadmin has downloaded payloads from.


In order to determine all the emails received I follow the processes laid out here…

To be a Cyber Security Analyst – Emails

And also here…

To be a Cyber Security Analyst – Web interaction tracking

After following these processes, it was noticed that despite emails having different subject lines and having been sent from different senders, all the URLs contained within the emails ended with “order-status-fulfilled”. Knowing this allowed us to generate a list of potentially affected users.

Using this list of affected users and analysing the web proxy logs and endpoint tools, we also determine that despite the very large number of URL’s contained within the emails, there are only 3 URL’s that bitsadmin attempts to download from.



This attack was executed between the 8th and 12th October 2018

To check for this attack within your own environment, check your proxy logs or web interaction tracking tools for connections to url’s ending with “order-status-fulfilled

Also check for connections to any of the following… (note, I believe these sites are currently down, but check your historical logs)


How to write an app -fitness tracker iOS version – creating a custom calendar part 2

In the previous post I went over how to create the basic layout of a custom calendar which displays a box with the date in the top for each day of the month, and within each box is a button that when clicked, can be set to display an image of our choosing. To go back and see how this layout was built click here…How to write an app – Fitness tracker IOS version – building a custom calendar


In this post I want to go over including some code in our app that will adjust the appearance of the calendar based on which month we are looking at, so for example when looking at September we will see 30 boxes instead of 31.

Logic tells us that no matter what month we are looking at, the first 28 days will always appear the same. For this reason, we need to create code that can make the 29th, 30th and 31st number labels and buttons disappear and reappear as we need.

So lets start by creating some IBOutlets for the number labels and buttons, so we can affect these with code. For those that don’t know, an IBOutlet is like a connection between an object on your storyboard and the code for your app. Let’s create the outlets to make this more clear.

Make sure you can see your main storyboard and your code for the main page and then select the number 29 label. Holding control, drag and drop underneath the “didReceiveMemoryWarning()” function code block. You should see an small window open up as below…


Make sure the connection type is “Outlet” and name it something appropriate. Here I’ve named it label29, and ensure the Type is correct, in this case UILabel. Once you press connect you should see the IBOutlet appear in your code as below.


So this now gives us the ability to write code that will take actions on this label. Which we will do whenever the user changes the month. Let’s now go ahead and create IBOutlets for the remaining number labels and buttons for days 29,30 and 31.


At this point we are now able to write code that takes actions on each of these objects. Specifically, if I write code to remove the text in both the label and the button, its as if they are not there as far as the user is concerned. I could put some code into the viewDidLoad function to test that this works, however I don’t want the labels to change on opening the app willy nilly, I want the labels to change depending on what month we are currently viewing.

This leads us to our first coding problem, how do we know what day we are currently viewing. For me it makes sense to always open the calendar on the current month we are in. Here is how I went about determining the current month. Within the ViewController class, before the viewDidLoad and other functions enter the following code…

let now = Date()

let dateFormatter = DateFormatter()

var nameOfMonth : String = “default”

Let’s explain whats going on here, the “let” keyword signifies a constant. The current date isn’t going to change while you are looking at the calendar (most likely) and so this can be a constant value. In this case, a “Date” object is created that will not change and signifies todays date.

Similarly, underneath we create a “DateFormatter” object that will not change. This formatter simply lets me take the date object and format it into a way that is easier to handle, this will become more obvious in a moment.

Finally, I create a String variable to hold the name of the month called “nameOfMonth”. Since this will change if the user changes the month they are looking at, this is not a constant and has been declared using var instead of let. As we do not yet know which month we are looking at, I have initialised the variable with the value “default”.


So at this point, we have a date object containing the current date, and a string variable currently with the value “default”. What I want to do now is change the nameOfMonth string to reflect the current date. Here’s the code to implement this followed by the explanation…

if(nameOfMonth == “default”){

            dateFormatter.dateFormat = “LLLL”

            nameOfMonth = dateFormatter.string(from: now)


The first line of code is the if statement. In case you’re wondering why we would need an if statement, its because later on in the app we build functionality that takes you to a different page, and when returning to the main page we might not necessarily want to set the month to the current month. The user may have scrolled across to a different month, and we want them to be able to return to the month they were currently viewing, not be taken back to the month of the current date (what a mouthful!)

So anyway, if the app has just been started and the current name of the month is “default” the if block is entered.  Then we set the date formatter to display the date as a single month in a text string using the “LLLL” value. To put into context a little how that works and what its doing, if I had set the value to “LLL” the output would be “Sep” for example, “LLLL” would give “September” and “YYYY” would give “2018”. For a full list of how you can format the date google dateformatter.dateformat.

And now finally, we apply the date formatter to the current date using the line of code, nameOfMonth =dateFormatter.string(from: now). What this leaves us with, is the nameOfMonth being for example, “September” or “October”

Having a variable with a limited set of possible values is great because we can now create a series of if else statements. Before going into the code the logic we want to create now is to say, if the month is x,y or z, set certain days to be visible or invisible. And if the date is a,b or c then set different days to be visible or invisible.

At this point, we’re not setting any code to let us change the month manually, we will do that in the next post. But the code we’re about to write will change the calendar to reflect the current month as determined by your phone. At the time of writing, it is October and so actually I wouldn’t expect this code to change anything as there are 31 days in the month, and all 31 days are visible by default.

I’m going to create a function called setDays(). This function will run through a series of if else blocks and make days visible or invisible as appropriate. There will be 3 blocks needed, as some months have 30 days, some have 31 and February has 28. See the code below for the full function…


Hopefully the code logic there is obvious, you can see I’ve forgotten to remove the comments to remind me of what code to put where, what an absolute bozo. So the only thing remaining to do is call the function setDays(). I put this in the viewDidLoad() function as I want it to be called when the view loads, when the app is opened.

So, thats that, a calendar that changes depending on what month it is when you open it. Hopefully you can imagine from here it’s a simple matter of changing the nameOfMonth variable and then calling setDays() again to change the calendar, but in any case the next post will go through this. Hopefully this has been helpful!

How to write an app – Fitness tracker IOS version – building a custom calendar

If you’re just joining here, you might want to jump back to the beginning so you can see how the app has been built up until this point…How to write an app – fitness tracker IOS version – introduction

Otherwise, at this point in the app we are going to start building our calendar. Now I believe there are already calendars available that you can import and use however, when I was building the android version of this app there was no calendar that had the exact functionality I wanted, specifically I wanted to be able to click within the calendar and set an image to appear in that space.

So the way a real programmer would have done this (I believe) would have been to take an existing calendar class and extend the class adding the desired functionality to it. Well honestly this was over my head, maybe one day I’ll be there but for now I decided to build my own calendar from scratch.

So, here’s how I built it. I’m going to start hand holding a little less from here because, hopefully by now you’re getting the hang of the Xcode interface and also its a real pain taking screenshots of every tiny change. I’ll still screenshot at intervals when needed.

First in the object library in the bottom right, where we found our views, search for a stack view. Specifically we want a vertical stack view. This view is going to contain 5 other views, which will each contain a weeks worth of days in the calendar. Place the vertical stack view in our main screen under the view we built in the previous tutorials. For now resize it so that it takes up approximately 3/4 of the remaining space in the app screen.

Now search for horizontal stack view in the object library. Drag and drop 5 of these horizontal stack views into the vertical stack view. Each of these horizontal stack views will eventually contain 7 views, one for each day of the week. You may find this messes with the size of the vertical stack view but don’t worry as we will fix that now before we move on.

Select the vertical stack view again and with that selected, click the constraints tab. Set the constraint to the neighbour above (our first view) to 8. Set the constraints to the neighbours either side (the edge of the screen) to 4 and finally set the constraint to the nearest neighbour below (the bottom of the screen) to 100. This is to give us space to add our Instagram button and an advert banner at the bottom.

Also while this vertical stack view is selected, in the attributes tab there is an option of “distribution”. Select this and choose “fill equally”. This will set each of the horizontal stack views to take up the same amount of space within the vertical view.

So at this point we have one large vertical stack view which represents our entire calendar. Within this we have 5 horizontal stack views which each represent a week. Now I am going to create a view that will represent one day. When I originally created this app I messed up in the sense that I created 31 views, one for each day, and then went through each one configuring the sizes and constraints. Not very clever and programmer like. If I had the sense to preplan I would have created one view to represent a day, and then copied it a whole bunch of times. So thats what I am going to do here.

So the steps to do this is as follows, drop a simple View into your top horizontal stack view. It will automatically size to fit the entire stack view because its currently the only view in there, don’t worry about this. This view we have just dropped in represents one day in out calendar. I now want to split this day into 2 parts, the top part will be the date and the bottom part will be the image I want to place in that day.  So once again, drag and drop 2 more views into our “day” view.

These 2 views I have dragged and dropped into the day view I have renamed, just for the sake of being able to keep track of what is going on with all these views. I’ve named the top view “dayNumber” and the bottom view “dayImage”. While I’m at it, I’ve renamed the day view to be “day” I’ve set the following constraints for these 2 views. The top view I have given the constraint of being a distance of 0 to the top of the “day view” and set a height of 20 which I believe is big enough to display the day number on it. The bottom “dayImage view” I have given a top distance from the dayNumber view as 0 (I want it to be directly underneath the dayNumber view. And the bottom distance to the “day” view is 0. Notice I haven’t set any horizontal constraints because I want the horizontal stack view to take care of the horizontal sizes when it distributes the views contained within equally.

So for anyone reading this and thinking “what the hell is going on, views everywhere!” here’s an image of where we are currently at. I’ve coloured the dayNumber view blue and the dayImage view green. You’ll notice at the moment it looks like gobbledygook.


Ok so at this point I’m tempted to put 7 of these day views into the stack view so we can see a little better whats going on. That means we will need to replicate anything we do within the day view 7 times though. That’s just not good coding practice, so instead lets just tolerate the fact the calendar looks nothing like a calendar for now and press on.

Before doing anything else, set some constraints for the dayNumber and dayImage views so that they are 0 distance from the left and right of the day view. This will mean when we start adding more days into the stack and the day view shrinks accordingly to make space, the dayNumber and dayImage views will shrink accordingly with them.

So the dayNumber view needs to contain a label so it can display a number representing the date. Lets find a label view in the object library and drag it into our dayNumber view. For now, I’m going to set the text in that label to “1” although this will need to be changed later.

I want the image portion of the day to be clickable, and so I am going to drag and drop a button into the dayImage view and set the text for the bottom to be “+”

One last thing before I start copying and pasting the day view, I want to set some constraints for the new label and the new button to make sure they are always located in the centre of the dayNumber and dayImage views.

Ok I can’t take it any more, lets make this start to resemble something that looks like it could eventually become a calendar. Copy and paste the day view containing all your sub views and labels and buttons, 6 times into the top horizontal stack view giving a total of  day views.

After doing this we should have something that looks like the top line of our calendar.


Things get fairly simple from here on. I’m going to change the text in each box to the appropriate number, and I’m going to remove the colours as we don’t really need these any more they were only there to help see the 2 separate views. Once this is done, I’m going to delete the other horizontal stack views and instead copy and paste the current horizontal stack view, so we have 5 stack views the same, I re-number the days as appropriate and remove the text from the labels and buttons for the days after 31 to leave with what is shown below…


At this point you might be thinking, “well all you’ve done is create a grid of views to represent days” and well yeah, pretty much.  However in the next tutorial we will add our first bits of code to the app that will change the number of days displayed on the screen, dependant on which month you are currently viewing. So for example, if viewing February, days 29,30 and 31 will disappear.




Rowing and conversations with the ego

One of my favorite movies is Guy Richie’s “Revolver”. It took me about 3 viewings to understand what the hell was going on but eventually I realized the movie is about a man who goes to war with his greatest enemy, his own Ego.

In the movie, his Ego is the voice he hears in his head, not in some crazy “kill everyone” way but in the same way we all have our own voice in our heads. In the movie, his big awakening moment was his realization that the voice in his head was not in fact “him” but his ego, pretending to be him. If that doesn’t make sense I definitely recommend watching the movie, but just in case you can’t be bothered, here’s a couple of quotes from the movie to get my point across.

“The greatest enemy will hide in the last place you would ever look.”

“The greatest con, that he ever pulled… was making you believe… that he is you”

These lines are referring to the main characters ego. We all hear that voice in our heads and we do assume that this voice is “our” voice. This voice in our heads pretty much aligns with our own wants and needs as long as we stay in our comfort zone, but once you wonder out of your comfort zone, the ego doesn’t like this, and will try to convince you to go back to where you are comfortable.

You may be wondering, “what the hell has this got to do with rowing?” Another quote from the movie goes something along the lines of “wherever you don’t want to go is where you will find him”. In the movie, the main character is scared of tight spaces and so he purposely puts himself in a tight space to make it easier to hear and identify the fact that this voice he is hearing is not him.

For me, the best way I have found of hearing this voice is with rowing on the concept 2 rowing machine. Specifically, I have found the 2k row to be the best distance for this. The time and pace for the 2k just seems to work out best. Let me try and explain how this works for me.

I start out the row with a definite goal in mind, to get a PB. I would love to get under 7 minutes but I haven’t managed to make it yet. But this is my own goal, me, my want, my desire, my decision. And so I start the row, the first 500m usually goes down ok, but slowly, as I become tired and very uncomfortable, the conversation begins…

You’re not going to be able to do this, you’re only at 500m and you’re already tired.

“I CAN do this, I just need to keep on going, every time I hit 500m it always feels uncomfortable and I’ve got PB’s many times before”

As 1000m comes and goes…

You may as well just stop now, if you go all the way to the end you’re gonna feel sick and horrible and you won’t have the PB anyway, if you stop now you won’t have the PB but you’ll still feel good.”

“NO! If I stop now I’ll never know if I could have got the PB!”

And finally, the last hundred meters, the voice is loudest…

Just stop or you’re going to be sick, I can’t do this, i’m too tired, there’s just no way I can keep this going for these last 15 seconds”

And to be honest, at this point the other voice, the real me, the me that made the decision to get that PB, my voice is tiny. That voice that says, “Just keep going”.

For me, the voice that is telling me “I can’t do it”, and “I should stop”, that’s the ego. The voice that says, “keep going”, that’s me. I used the rowing machine to provoke this internal argument so I can isolate the ego from my own thoughts the same way the character in Revolver went into the tight space to isolate his. Once you can acknowledge that this inner voice exists and is not in fact “you”, you can at least attempt to overcome it when it pipes up when you are out of your comfort zone.

Before I end I wanted to give an example of when being aware of this has helped me. Fairly recently I decided to start coding Apps for mobile phones. I had the thought that at some point some years in the future I would like to be able to work for myself as a coder. So i’m studying and building my first app and I come across some problem that it doesn’t appear as though I can overcome, and this voice pipes up “I can’t even solve this one problem, how am I ever going to be able to work for myself doing this, I’m never going to be able to learn all this there’s too much to learn, I’m never going to be able to work for myself doing this.”

I found myself listening to these thoughts, and I said consciously to myself, “shut the f%$k up” I realized that this was not me saying these things. I had put myself out of my comfort zone and the ego had piped up. Maybe I won’t be able to work for myself, but at the very least I’m not just giving up because my ego doesn’t like to be out of its comfort zone.

So, go and find your ego. I’m not saying you’re gonna be able to get rid of that voice that says “you can’t do this” when things get uncomfortable, but at least you might recognize the fact that voice is not you.


How to get ripped for the rest of us – Diet and Nutrition

In my introduction to this series How to get ripped for the rest of us – Introduction I talked about how I don’t count calories, calculate syns or follow any special diet, and that instead I follow a few simple rules that have allowed me to develop the physique that I have now while still eating, for the most part, like a normal human being.

Let me just say before I get into it, I am by no means saying that there are not quicker or more effective ways to lose weight and/or get ripped. But keep in mind this is supposed to be a guide for the rest of us, who don’t want to spend time counting calories, calculating macros and spending hours and hours in the gym. Also keep in mind, my motivation for eating the way I do is not only to control body fat and build muscle, but also to promote health and longevity. I do not believe it is worth sacrificing health in order to make short term gains.

So with that being said, lets go into the few simple rules I follow…

Rule number 1 – Sugar is the enemy

I think most people are finally getting the memo that fat is not what makes people fat. No, sugar is the real enemy. The whole fat is bad for you idea was so ingrained in our collective thinking that its taken some time for the message to get around. And if you’re just getting this message now, then don’t dismiss it. I don’t want to go too deep into the science, if you want that then have a google for some actual scientific studies, but I will go into the theory very briefly.

The basic reason people put on fat is not because they eat fat foods, it’s in the way the body breaks down and processes the foods you eat. To put it simply, if you put in what you need, the body will use it, if you put in more than you need, the body will store it. But it’s not as simple as you eat it and voila its available to the body, if so anytime we ate anything the body would have to store almost all of it as the body only needs a small amount of energy at one time unless we are taking part in some physical activity.

This fact pretty much leads to the cornerstone of my whole philosophy of eating to lose body fat. You have to eat in such a way that the energy in the food you have eaten, only becomes available to the body at the rate (or slightly lower than the rate) your body needs it.

If you don’t want to get too technical, just remember that. That is the number one thing to keep in your head at all times. Its so basic to the whole point of this I’ll repeat it… The rate at which energy becomes available to your body has to be slightly lower than the rate at which your body uses the energy if you want to burn fat.

So with that in mind, the reason rule number 1 is “Sugar is the enemy” is because high sugar foods break down and become available to the body at a very high rate, a rate higher than your body is likely to be using that energy unless you are taking part in some physical activity. And so when you eat sugary foods, it’s very likely your body will store a lot of that food as fat. Like I said its obviously way more complicated than this, but understanding that basic principle will get you 90% of the way there.

Rule number 2: Protein! I love protein

I’m not just in the business of losing fat, I don’t just want to be skinny. I want to have a low body fat and have a decent amount of muscle. I think this rings true for women too, “strong not skinny” is definitely the way forward. And so for this reason, as much as I want to avoid sugar to prevent storing my foods as body fat, I also want to be consuming enough protein to make sure my muscles can recover and grow following on from a heavy workout.

So with rule number one and rule number 2 in mind, whenever I look at a label on a food container and ponder whether or not eating this will either help or hinder my goals, I look at the protein to sugar ratio.


Yep, just like in “You don’t mess with the Zohan” it’s all about the ratio. I don’t have a hard and fast rule about the ratio of protein to sugar but in general, the more protein to sugar the better. If there is more sugar than protein I don’t even bother unless it comes under rule 3 (coming shortly!) and most often, I want there to be at least four times as much protein than sugar for me to consider it as a food that will help me towards my goals.

Below is the nutrition on the back of a pack of rolled oats that I often eat for breakfast, probably the most carb heavy thing I eat.

Typical Values Typical Values Per 100g Per 40g Per 40g1 (%*)
Energy 1565 kJ 626 kJ 1222 kJ
374 kcal 150 kcal 291 kcal (15%*)
Fat 8.0 g 3.2 g 8.6 g (12%*)
of which Saturates 1.5 g 0.6 g 3.9 g (20%*)
Carbohydrate 60 g 24 g 38 g
of which Sugars** 1.1 g 0.4 g 15 g (16%*)
Fibre 9.0 g 3.6 g 3.6 g
Protein 11 g 4.4 g 15 g
Salt 0 g 0 g 0.30 g (5%*)

So a couple of things to note, the protein is way higher than the sugar content. Although this is very carb heavy the carbs should be released slowly as my body needs them. I also add a few ingredients to push the balance towards higher fat/protein than sugar/carbs. such as peanut butter and various seeds.

Rule number 3: Don’t forget your health!

So quite often I hear someone mention something along the lines of fruit being bad for you as it contains a lot of sugar. While technically this is true, there are a couple of things that you should think about around this. Firstly, in whole fruit (not juice) the fibre in the fruit does help to slow down how quickly your body can get hold of the energy. So while this does not mean eating fruit will keep you in that magic zone of having less energy available than your body needs at any single point in time, it does reduce quite how much over this threshold you might go.

The second thing to consider here is this. Fruit has a tonne of vitamins and nutrients that are just so good for you. Life is not all just about reducing body fat, we need to be healthy too right? So weigh up the pros and cons. If you just eat fruit all day then sure, you’re not gonna get far with your fat loss goals. But if you eat some fruit once or twice a day, then sure you’re body might only be in fat burning mode 80-90% of the time instead of 100% but also you’re receiving vital nutrients and vitamins.

A final word on mindset

So that’s pretty much my 3 simple rules. Avoid sugar, seek out protein, and think about your health with regards to ensuring you get all the vitamins and nutrients you need. Simples. I did want to say one thing about mindset though. I know a lot of people will eat something they shouldn’t, and when I say shouldn’t all I mean by that is , not in line with your goals. It’s not a sin! It’s just moving you in a direction opposite to where your goal lies. So anyway they eat something they shouldn’t, and immediately have some thought along the lines of “well I’ve ruined it now and so I may as well give up”.

If you think about fat loss and muscle development as a journey (I don’t mean some spiritual juju, I’m talking about thinking of it as an analogy) then every meal that you eat that satisfies your protein and other nutritional needs while keeping  “The rate at which energy becomes available to your body … slightly lower than the rate at which your body uses the energy”, is a step in the right direction in this journey. Good stuff. Now if you eat a meal that does the opposite of this, because you succumb to temptation or maybe you just have a life and you’ve gone out for dinner with friends or family, this means you’ve taken a step in the wrong direction in this journey.

Now this is the important bit, if you’re on a journey somewhere, anywhere, and you take a couple of steps in the wrong direction. Do you just throw your arms in the air and shout “F**k it” and turn around and go home? No, because that would be completely insane. You retrace your steps and quickly make up the lost distance. As long as you’re taking more steps in the right direction than the wrong direction, you’ll eventually get to where you’re going.

Of course, the less steps you take in the wrong direction, the quicker you’ll get there.