Look away!

Look away!

I always say that in my head with a mrs tiddlywinkle voice.

Watched a horror film on Netflix last night. It was pretty good. Or certainly the first 2/3 of the film was good.

It was a supernatural thriller that could have easily have been a girl with multiple personalities/schizophrenia that used the cover of a ‘different’ person in the mirror to do the things she didn’t/couldn’t do in real life because she has morals and erm not a murderous streak.

Anyway. It’s the second horror film I’ve watched in a couple of months where the latter part of the film seems to just fall on its arse and you’re left with a bunch of unanswered questions.

I can’t even remember the name of the last one. And it’s not in my Netflix viewing history. So I have no idea what it was.

So. If you’re writing a story make sure it ties up loose ends and it’s not crappy.

You’re doing ok

You’re doing ok

Hey you.

Yeah, You.

I just wanted to tell you that you did good today.

You got through it.

You did it.

Even if all you did was pull yourself out of bed this morning, even if it was really hard to do. You did it.

Even if you didn’t manage to brush your hair but you did manage to brush your teeth today. You did it.

Tomorrow the struggle starts again. And it might be harder than today.

Don’t worry. Take a deep breath, break down your day into tiny baby steps and do each one at a time.

Don’t worry about the full picture. Don’t worry about why you have to get out of bed. Or why you have to put your shoes on.

Just take each bit as it comes and if you get to a bit that you don’t think you can handle, then take a break.

Have a sit down, under a blanket if you need to.

Have a cup of tea. Or a drink of juice. And try again.

If it still feels unachievable at this stage, let it go. Do what you need to make yourself comfortable and feel safe and then try again tomorrow.

You got this.

Your record for getting through the hard days is still 100%

Sweet dreams and good luck out there tomorrow.

Even if ‘out there’ is just the other side of your duvet.

Try and get that one step further out of your comfort zone.

Or try doing something selfish – something just for you.

You deserve it.

And remember that no matter what you did today, be it a marathon or just managing to get out of bed and eat something for the first time in a couple of days, you’re amazing and you matter.

Everyone is fighting their own battles that nobody else can see.

Everyone has problems.

Everyone has demons.

Everyone struggles sometimes.

Be kind.

#lookafteryourself

#mentalwellbeing

Optimising AWS account creation

Optimising AWS account creation

I’ve been told that when the company I work for first started to create new AWS accounts, they would have to set aside a day for it.  A director also had to be tracked down in order to get hold of the company credit card details.

Fast forward a few years and this process still took at least an hour – maybe two hours depending on what it was you were creating.  There was a 42 page word document to follow with step by step instructions, policies that had to be typed in by hand (following screenshots) and cross account access rights that had to be in place. 

The likelihood of missing something or a user inputting a typo was just too high and added another layer of complexity in that every new account had to be double checked. 

I was tasked with automating as much of this process as I could to save time. 

I started this by enabling AWS Organizations and bringing all of the accounts under control properly.  Previously, cloudtrail was set up on new accounts manually, setting up all of the S3 bucket rights as you went, making sure that the trail created properly, that it was logging where it should, etc.

By turning on AWS Organizations and enabling cloudtrail, I was able to set an organisation wide cloudtrail policy that applied to all accounts old and new automatically.  I was then able to delete the manually created trail configs in each of the old accounts.

I was trying to find a little guidance on how to leverage cloudformation for the creation of accounts and I was lucky in that Amazon had written this blog post earlier this year and it looked to be the starting point for what it was we needed. 

https://aws.amazon.com/blogs/mt/automate-account-creation-and-resource-provisioning-using-aws-service-catalog-aws-organizations-and-aws-lambda/

The problem being – it wasn’t quite what we needed, and it certainly wasn’t the drag and drop solution I was hoping that it would be. 

For starters, this tooling assumes that your users will be in the master account for the organisation.  We have them in a separate organisation. 

It also asks for allsorts of Region and AZ config, along with CIDR ranges for network addresses – we don’t need this level of customisation.  I set about stripping out what it did, from both the cloudformation template used in the service catalogue and the python script which creates the account and all necessary resources. 

It also asked for the baseline template, s3 bucket name and various other variables that would just never change for us.  Hardcoding them and removing them from the user form meant further improvements in speed and accuracy. 

I didn’t want an admin user creating, we don’t need one – so I stripped that out. 

It also created a service catalog (at a charge of $5 per month per account) with a load of stuff in  – that we just don’t need right now (though we will be moving to this in the future I would think). 

We have a different role name that we use for cross account access – I had to make changes there.

This cross account access needed to have a trust relationship to the user account, and not the master org account, so again I had to make some changes there. 

There were also special policies that restrict the creation of IAM Users and Groups that I needed to put in place along with other organisation accounts and policies.

attach_policy_response = iam_client.attach_role_policy(RoleName=newrole,PolicyArn=iammarn)

It’s all well and good when you’re assigning AWS built in policies, that arn never changes. 

PolicyArn=’arn:aws:iam::aws:policy/AdministratorAccess

When you want to create a policy, in your new account, and then assign that policy to a new role – then things get a little trickier – but it is possible by creating a variable based off other variables and text:

 iammarn = ‘arn:aws:iam::’+account_id+’:policy/IAM_User_Restrictions’

I also added the function to set up the IAM alias for login, based on the accountname provided by the user.  This was done using:

create_alias_response = iam_client.create_account_alias(AccountAlias=accountname)

Through a lot of trial and error (and a lot of created dummy accounts) I’ve finally gotten us to a place where a new account is set up automatically and the admin user needs only provide the name of the new account and the email address for the root user. 

Due to the way that cloudformation triggered the python code, and the lack of any ability to edit an account in-situ, I had to make changes and then fire a new dummy account (which needed its own unique email address). 

The entire process takes less than 3 minutes.  3 years ago – this took a person out for an entire day.  Now, it takes less than 3 minutes and most of that is non-interactive time.  The user time this takes up is probably less than 20 seconds. 

The finished product is:

A brand new AWS account within our AWS Organisation.


A trust relationship back to the user AWS account, allowing admin access through assume role.
Special company policies that we have in place for restricting the creation of users and groups.


Denies access to the billing screens.
Creates 2 company specific roles, with their own policies (will create as many as we need to have in a standard account) and assigns these policies on the fly.


Sets up CloudTrail.
Sets up the IAM alias so that users can log in using a friendly name rather than an account ID.

It probably does a little bit more magic too – it doesn’t sound like a lot, but it took hours and hours and hours of engineering. 

I’m not finished yet – there are a few more tweaks I need to make and the code is definitely not the best it could be – but I’m a sysop/engineer by trade and my python is a little rusty.  AD integration is also coming in the next few months taking away even more of the setup from the user account side of things – everything will be managed with RBAC groups and it’ll just be a case of setting up a group in the AWS account that ties back to that AD group with the relevant STS assume role permission for that particular group of users – be it developer or ReadOnly access for an architect. 

Automating laborious, long winded and repeatable processes to reduce human error and free up more engineering time for service improvements and maybe even some professional development to ensure that that you’re in the best position for supporting the business going forward is the key here. 

Cloudformation is a fierce beast, especially when partnered with lambda functions running python scripts from S3. 

#engineeringwin

Bullying

Bullying

I’m not sure about you, but my main experience of bullying at school was on the receiving end. I was bullied mainly about my weight. I’ve always been big. It’s never been that fun. It restricts some of the things I can do, it results in being pointed at and laughed at by strangers, it results in unwanted comments from some other strangers too and ‘friends’.

The worst part of this was at school. Kids are cruel. Some kids are downright evil. Kids want to look good in front of their mates, kids want to crack jokes at other people’s expense. After all – aren’t we all told that ‘sticks and stones will break my bones but names can never hurt me’?

I call bullshit.

Words are powerful. Sometimes more powerful than physical acts. They can stay with you for life. They can have an effect on you and how you lead your life. They can make you feel less ‘worthy’ than you should.

I’ve spoken before about the problems with social media, I think back when I was in the early stages of my career, just after I’d left school and in the 5 years after, social media was in the myspace era. Friends Reunited was still around with its annual fee if you wanted to send messages to your friends and not many people wanted to reconnect anyways. Not at that stage.

Fast forward 20 years and we’ve got Facebook, everyone has got facebook, well most people. People tend to be suspicious of people without facebook – its not normal (even though its probably healthier and a much better position to be in). Everyone has twitter, and snapchat and instagram or whatever else the flavour of the month social media portal is out there and ‘hot’ right now.

Facebook allows us to see interactions on friends walls with ‘friends of friends’ – people your friends are friends with but you are not.

Sometimes, I get these ‘friends of friends’ taking part in a discussion that I’m involved in and I can’t help but get a wave of resentment and almost I guess hatred sweeping over me.

Presumably they’ve long forgotten that comment they passed that afternoon in school whilst you were all lining up to get into Science, or when they made fun of you for wearing the same t-shirt on yet another non-uniform day (My Jurassic Park t-shirt was awesome, okay?). About the style of your shoes being like loafers, whatever the hell they were.

False compliments too – Saying that your hair was nice or looked good or you looked good. Being asked questions on a dare from their mates.

I remember.

I remember every. Single. Word.

Every single instance of bullying, I remember it.

Every single time you put me down, I remember it.

And you were a dick.

You might have changed. You might be a wonderful person that helps fire scarred orphans to drink from bottles of milk. I don’t really care.

You were a dick, and you made my life at school horrible. And the words that you cut me with, the words that you used to get a laugh out of your minions who followed you around everywhere (what even is that about?), have left scars to this day.

As I hurtle toward 40, I care less and less about what other people think and say. If I decide not to give those words any power, then they can’t affect me. If I don’t let the opinions of others have any weight whatsoever, and recognise that they are the ones with the problem, not me, then it makes it easier to cope with.

The problem is, as a kid, or as a teenager, you don’t have this life experience and you don’t have the skills or the tools to deal with it. You get told by your parents that school is great and its the best days of your life – even though you know its not.

Not having bills was great, and not having as many responsibilities was also fun. 6 week holidays in summer seemed to last forever and you had seemingly hours of time to play computer games that goes away as you get older. But that environment of fear and constant abuse/put downs from certain people and ‘peers’ that you had to spend those 7 or so years of your life with were downright horrible.

Those 150 people in my year – I’m in contact with less than 10 of them. At the time, they are your world. You don’t realise that every time you change jobs, you get another set of 150 people that you spend that 8 hours of your day with. But what you do end up with, is respect and politeness. And generally speaking, people are much nicer to you at work than they were at school.

Maybe its time we stopped telling kids that words can’t hurt them, and time that we tried to give them the tools to cope with those words and the pain caused by them. Most importantly, maybe we should try to teach kids that their words and actions have real impact and consequence. I know that if I ever found out that either of my boys were bullying anyone I would do everything in my power to make them stop – not by necessarily making an example/making them feel the same way but try to explain from the other person’s point of view how they might feels, and teach empathy to help them understand just how they would feel if someone made fun of them.

I’ve also seen people say that bullying is a part of growing up and it builds character. No it doesn’t. It shouldn’t be a part of growing up – mutual respect should be. You don’t build character by destroying souls, stamping on peoples feelings and rubbishing their interests.

We’re all responsible for giving our kids everything that they need in this world, we give them hopes and dreams and we inspire them to be whatever they want to be. From my mum and dad, I got manners, respect, a clear definition of what is right and wrong and was taught how to treat other people.

The best thing you can teach your children is kindness.

Teach your children to be kind.

If everyone in this world was kinder, the world would be a very different place.

Some people aren’t as strong as I am, some people have been affected by words in a much deeper way, and some people have taken their own lives as a result of bullying.

Be kind, and always treat people how you would like to be treated yourself. You never know what battles the people you deal with every day face. You don’t know what hardships they face. So be kind, and help to make their day a little brighter and more bearable.

Finally sorted the http redirection and port 80 problems

Finally sorted the http redirection and port 80 problems

Right, after finally getting around to it, I’ve sorted out my httpd conf so that it’s working as expected, moved some common parameters into a separate common configuration file, set up an additional VirtualHost entry and turned on listening through port 80 again.

Also taken another image of that so that when the spot instance invariably fails, I’ve got a new golden image to go.

I should probably add in some backup scripts and config backing off to s3. Maybe even just move the static parts of the site to s3 and serve from there. Hmm.

Yorkshire Pudding recipe

Yorkshire Pudding recipe

The below makes 12 – but if you only fill the tins halfway up rather than most of the way up you’ll end up with crispier puddings rather than big floppy ones.

You will need:

250ml of milk (I’ve used whole, semi and skimmed – it works well with all)

163g of plain flour

5 large eggs

(you can also use the measuring jug method – break your eggs into the jug, say they make up to 400ml, pour them into your bowl, add 400ml of milk, pour that into your bowl and then pour flour in up to 400ml line then pour that into the bowl- what’s important here is equal measurements of the ingredients)

some lard/or beef dripping

a muffin tray

hand whisk/beater/electric beater – I have this one and it works a charm – https://www.amazon.co.uk/OXO-Good-Grips-Hand-Held-Mixer/dp/B004VLYQFO/

Method:

Break the eggs into a bowl.  Whisk until its well mixed.

Add salt and pepper to season

Add the milk

Whisk some more

Add the flour

Whisk a lot

You want bubbles all over, lots of nice airy bubbles

Stick the mix in the fridge to rest – for an hour, for the day, whatever time you’ve got works well.

Ideally do that a few hours before you need them.

To prep your tray:

Add about a teaspoon of lard to each section of the tray.

Put it in the oven between 210-230 degrees (you’ll have to experiment with your oven over a few batches)

Leave it in there for a good 5-10 mins

Take out your mix from the fridge

Evenly distribute mixture between them

Stick it back in the oven  

Leave for at least 20 mins

Under no circumstances open that oven door.  Not even to check, or turn something else, or anything.

DON’T OPEN THE OVEN

Somewhere between 20-25 mins, they will be done.  Again, this depends on your oven and it’ll take some experimenting to get it right.  You don’t want to take them out too soon as they’ll deflate and you’re stuck with smaller puddings than you deserve, but you don’t want them to catch and burn either.

AWS Summit in London

AWS Summit in London

The AWS summit was absolutely fantastic. Met up with a few colleagues I haven’t seen for years, learned a few new bits and pieces, saw some really energetic and charasmatic people present ideas, solutions, challenges and ideas and mingled with around 12,000 people who were all interested in AWS.

It was mind blowing to think that there were people all around me, brilliant people, trailblazers, thinkers, do-ers.

I can’t wait to go back next year, and all it did was whet the appetite to get out to AWS Re:Invent in Vegas. That still remains a pipe dream unless I can get good at machine learning and DeepRacer and have a sub 9 second model in place by this time next year.

Had a few lightbulb moments, it cleared a few foggy patches and it reaffirmed where I wanted to go and what I wanted to do.

I need to look to the future, and I need to make sure that I capitalise on my time by doing whatever I need to further that knowledge and that journey.

Relationships

Relationships

This one has been brewing in my head for a few weeks now. It’s strange.

Do you ever feel like your life is a little bit like playing The Sims? Trying to juggle work, home, friends, other responsibilities and maintain all of those different relationships?

You used to have to give them a phone and have a chat with them to maintain that level of friendship. Absolute nightmare to manage, it still gives me palpitations now. Ha.

Sometimes, with the way that shifts are working out, its hard enough to maintain the relationships between the people I live in the same house with – let alone people that I just don’t get to see as often anymore.

There are loads of people I used to work with that I considered as really close friends, once you remove that daily 9-5 exposure, the relationships start to drop off, and even though I think fondly of them often, there’s just not enough time in the day to maintain these relationships and they start to break down into acquaintances .

I don’t think there’s anything that anyone can do to stave this off – people I used to work with from 3-4 jobs ago I still have on Facebook, they still pop up on my memories and they still make me smile – but remove that thing you have in common, the daily grind and you just don’t have enough time anymore.

Throw in a few kids, family, shopping, constantly growing feet and bodies, Open University degrees and that 24 hours you have in a day seems to be an ever shrinking pool of nothingness.

I was talking to my dad about why he never speaks to or sees a friend that lives in the village that he used to work with and he just didn’t know – he says it just happens. I remember we used to visit this guy fairly often as we had a shared interest in Atari and Commodore computing. But as we move away from those common platforms, relationships degrade.

Having started a new job 2 months ago (I can’t believe how quickly its flown) I’m paying more attention to how these relationships are degrading. People that I talked to every day, I’m speaking to once a week or so. Some people I’m not speaking to at all. It’s sad, but things move on and it seems to be the circle of life. You can certainly see how people as they get older and move away from work that they can lose those circles and connections.

Stay at home mums and things too – it must feel so isolating.

I’m in a very good position, I have a job I love, a family that I love and I don’t want for anything. It’s still a shame that we have this 9-5 thing going on 5 days a week and the kids have school and it just stops us from being able to enjoy some of the finer things in life I guess.

There’s always retirement, if you make it that far – and that’s where you’re meant to be able to enjoy those things that you’ve worked your whole life for. I just hope I get there and I get to enjoy it. Everything crossed. 🙂

Social media is bad mmmkay?

Social media is bad mmmkay?

Came across this YouTube video earlier.

If one of the guys involved in putting together facebook (who has since left) is telling you to stay away and not use it, you should probably do that.

Bamboo fixed

Bamboo fixed

Turns out Bamboo wasn’t working properly – I think I’d started to create a test job, and that had broken the DB patch/reboot job. Just re-ran it through and all seems good now.

Need to stop it from emailing me every night and having me just ignore the emails. I might tie it into SNS or something. It’s good to have something to play with.