Azure Platform Series: Creating an Azure Container Registry – ‘registry_name’ must conform to the following pattern

This is another blog post in the series of how to #MakeStuffGo in Azure.

Background:

I am working on a client project that requires containerised applications – so we will be using Azure Container Registry.

I am using bash scripts to create the resources in Azure – so am using variables for all the things.

How to #MakeStuffGo with Azure Container Registry

Initially I had a Resource Group called AKS-RG as the client wanted their resource groups to have the function of what would be in there (in this case Azure Kubernetes Services) and -RG so that it was obvious it was a resource group.

So initially the script for the Azure Container Registry was:

az acr create \
--resource-group $RESOURCE_GROUP \
--location $REGION_NAME \
--name $ACR_NAME \
--sku Standard

Where I had the variables $RESOURCE_GROUP, $REGION_NAME and $ACR_NAME already defined further up in the script.

The only problem was – we had defined

ACR_NAME=acr-$RESOURCE_GROUP
which then failed in Azure Cloud Shell with:
validation error: Parameter 'registry_name' must conform to the following pattern: '^[a-zA-Z0-9]*$'.

The fix was pretty simple – we just changed ACR_NAME variable to be:

ACR_NAME=acr$CLIENTNAME

Which to be honest was a better standard – as we already had the clientname defined as a variable.

It is also the same in the UI (sometimes it is good to try this out as sometimes there are inconsistencies in Azure……)

Screen Shot 2020-06-07 at 17.54.22

So there you go – in some places you can use dashes in Azure and in some places you cannot. But that’s why we have prototypes – to find out all this fun stuff that keeps us on our toes..

 

Yip.

Azure Platform Series: Push to GitHub repo with 2FA from a Mac using Personal Access Token

This is another blog post in the series of how to #MakeStuffGo in Azure.

Background:

I have some code on my Mac. I need to put it into an empty GitHub repo for later deployment in Azure and I have to use a Personal Access Token (PAT). I was provided the URL of the repo and given the PAT so stored that in the keychain on my Mac.

#MakeStuffGo with PAT, GitHub and a Mac

  1. Add the PAT into Keychain:
    Screen Shot 2020-06-07 at 17.25.40
  2. Create the Project Folder on the Mac:
    heymish$ mkdir devops-aks-middleware-api
  3. Initialise the local git repo
    heymish$ cd devops-aks-middleware-api
    heymish$ git init
  4. Add the remote git repository – I have called mine origin – it could be anything
    heymish$ git remote add origin https://github.com/<clientrepo>/devops-aks-middleware-api.git
  5. Create a local branch
    heymish$ git checkout -b master
  6. Do some stuff
    For me I was just copying in code that we had worked on so far – so copied that into the directory and did:

    git status
    <list of files that I've added>
    "nothing added to commit but untracked files present (use "git add" to track)"
  7. Now we want to add those files to be added to our initial commit:
    heymish$ git add .
    heymish$ git commit -m "initial code commit"
  8. Now comes the hard part – getting the 2FA stuff going with GitHub.
    a) we need to setup the GitHub email address we’ll use
    b) we need to setup the GitHub username we’ll use

    heymish$ git config --global user.email "hamishwatson59@clientx.com"
    heymish$ git config --global user.name "TheHamishWatson"
  9. Now we will push our local changes to the remote branch.
    The -u flag indicates that we are pushing local changes upstream to origin

    git push -u origin master
  10. This will now ask me for credentials – which is the PAT I stored in the keychain before:
    Screen Shot 2020-06-07 at 17.19.36
    I type in the password for my keychain and I only click Allow – I’m ok to type in the password every time I need to auth to GitHub – I could click Always Allow – it’s just a personal thing.
  11. Git will now push my local changes up to the repository and I can now start to edit code and collaborate with my clients developers.

So there you go – not too hard and things are nice and secure. There are other ways to use GitHub – ssh vs https which I’ve done here. But for https the above method using a Personal Access Token is pretty straightforward.

 

Yip.

Azure Platform Series: How to setup Azure Cloud Shell

This blog post will be a series on the Azure Platform and some things we can use it for.

Background:

I run a consultancy company – and sometimes I have to build stuff for clients using their Azure subscriptions. Which means I get to help them setup their Azure platform.

I’ll write about the first thing you need to do when working with Azure – setup Azure Cloud Shell. I love the Azure Cloud Shell as it means I can stuff from anywhere, no matter what O/S, machine or location I’m in – I’ve been known to build data centres in Azure using my mobile phone whilst watching rugby on a field in Akaroa (seriously – Akaroa is a wonderful part of New Zealand).

But yeah – the best part of Azure Cloud Shell is that I have zero software to install or maintain – and I like that…

I can also load scripts up to Azure storage and reference them in Azure Cloud Shell.

#MakeStuffGo with Azure Cloud Shell

First up we need to go to https://portal.azure.com and login.
We now click the Azure Cloud Shell icon:

Screen Shot 2020-06-06 at 14.47.15

We can choose Bash or PowerShell – that doesn’t matter too much right now – we can always change it later.

And if this is the first time we’ve used it we fill out the form below – but be careful with your naming as you can get this:

Screen Shot 2020-06-06 at 14.45.26

The reason is has failed is:

Screen Shot 2020-06-06 at 14.59.32

So fir the Storage Account – just uses numbers and lower case letters only. No special characters.

But you also have to have a unique name for your storage account – not just your storage account but ALL storage accounts:

Screen Shot 2020-06-06 at 15.01.47

So make it something unique.

Oh and that File share name isn’t great either:

Screen Shot 2020-06-06 at 15.03.42

We settled on this:

Screen Shot 2020-06-06 at 15.05.15

And now we have:

Screen Shot 2020-06-06 at 15.05.52If after creating our Azure Cloud Shell session we want to change to PowerShell from bash or vice versa – it’s really easy:Screen Shot 2020-06-06 at 15.08.23

And there we have it – we have Azure Cloud Shell configured.
Now let’s go build some stuff in Azure!!

Yip.

T-SQL Tuesday #125 – Unit testing databases – we need to do this!!

Welcome to the first April edition of T-SQL Tuesday. I’m honoured to be hosting it and have picked a topic that is near and dear to me.
If you are new to T-SQL Tuesday this is the blog party started by Adam Machanic (b|t) and now hosted by Steve Jones (b|t). tsql2sday150x150-1[1]

It’s an awesome way of encouraging blog posts from the community and helping to share that knowledge out.

My topic is about unit testing databases – something that I don’t see enough of when I am working with clients. The good news is that over the years I’ve noticed that more people are speaking and writing about unit testing databases and folding that testing into DevOps processes like Continuous Integration & Continuous Delivery processes (CI/CD).

I hope that this topic drives some conversation both for it (because it protects your code and data…) and against it (it takes too long to write these pesky unit tests…!!).

We’re now delivering Bugs to Production faster than ever!!

This clickbait type heading actually describes what will happen if you embrace DevOps processes without doing any form of testing. Because DevOps is all about accelerating the delivery of software – we want to do more deployments and do them quicker…

..which is why testing is core to DevOps practises.  Specifically testing right throughout the deployment pipeline – that is starting at your laptop and finishing in Production (yes I advocate for testing in production but that’s a whole other blog post..).

What is Unit Testing?

Unit testing is a software testing method by which individual units of source code are tested to determine whether they are fit for use. A unit is the smallest possible testable software component.  A unit is small, so it is easier to design, execute, record, and analyse test results for than larger chunks of code are. Defects revealed by a unit test are easy to locate and relatively easy to repair.

This is opposed to finding the defect in Production – which is harder to triage and is now affecting users – whereas if you find that bug on your laptop via a unit test – it is way easier to remediate and only affects – you.

The ideal qualities of unit tests:

Decisive – the unit test has all info to determine success/failure

Valid – it produces a result that matches the intention of the code written

Complete – it contains all information it needs to run correctly within the test harness

Repeatable – always gives the same results if the test harness and code are same

Isolated – is not affected by other tests run before nor affects the tests run after it

Automated – requires only a start signal in order to run to completion

Benefits of Unit Testing

Below are the benefits of unit tests – this relates to application and databases alike.

Code Quality goes up:

Unit testing improves the quality of the code. It identifies every defect that may have come up before code is sent further for integration testing. Writing tests before actual coding makes you think harder about the problem. It exposes the edge cases and makes you write better code.

Find Issues early:

Issues are found at an early stage. Since unit testing is carried out by testing individual code before integration, issues can be found very early and can be resolved then and there without impacting the other pieces of the code.

Simplifies Integration

Unit testing allows us to refactor code or upgrade things at a later date and make sure everything still works correctly. Unit tests detect changes that may break things and help with maintaining and changing the code base.

The best part about unit testing is that it verifies the accuracy of the each unit of code. Afterward, when we integrate the code units together and run some form of integration testing during the build process we can then verify the individual units of code.

So what about databases?

So now that I have introduced unit testing – is it valuable for implementing with databases? Rather than write my own opinion – I’m going to hand it over to the community to answer this…

😉

(BTW I think it is valuable – I speak on it regularly and I implement it with clients to safeguard their production databases…)

 

The Rules

  1. Your post must be published on Tuesday 14th April. This counts as long as it’s still Tuesday anywhere in the world.
  2. Include the T-SQL Tuesday Logo and make it link to this invitation post.
  3. Ping backs should work, but to be sure, add a comment to this post with a link to your own so I know where to find it.
  4. Tweet about your post using the #tsql2sday hashtag

 

Lastly – we’re currently in a lockdown in New Zealand – because of the COVID-19 pandemic sweeping the world.

I want to say to all who are reading this:

Be Safe

Be Strong

and please:

Be Kind

If you’re struggling with things – please reach out to your support network (we care about you), I wrote some things that have been helping keep myself:

https://hybriddbablog.com/be-safe-be-strong-and-be-kind-surviving-covid-lockdown-in-new-zealand/

Take care – we’re in this together and you’re not alone
#sqlfamily

Yip.

 

Being awarded the PASS PASSion Award – you can too

The annual PASSion Award is the highest accolade given to a PASS volunteer.

Presented during the annual PASS Summit conference, this award recognizes an individual’s exemplary service and commitment to the PASS organization, by inspiring our community of data professionals to connect, share, and learn.

 

I was lucky enough to be nominated for this award – people nominated me back in September 2019 – although I didn’t know that they had…

Long story short I was awarded the PASSion Award at PASS Summit 2019:
https://www.pass.org/AboutPASS/PASSNews/TabId/15340/ArtMID/23897/ArticleID/754/2019-PASSion-Award-Winner.aspx

IMG_9314
This is a photo of a humbled and nervous Hamish…
IMG_9313
The actual award – it’s heavy – it has pride of place next to my daughter’s dance awards 😊

During the recent weeks in COVID lockdown it got me thinking that I should celebrate this award – I had not publicised it – as to be honest I’m still very humbled by it…

So I would rather turn this around – you too can be awarded this – now is a great time to reach out to your networks, to help setup virtual conferences and volunteer for things that might not have existed or were possible before.

Give it a go – or on the flip side – when nominations open in September 2020 – nominate someone you know that makes a huge difference in our PASS Community.

Yip.

Be Safe, Be Strong and Be Kind…. surviving COVID Lockdown in New Zealand

Currently we have have the COVID-19 pandemic sweeping the world. Here in New Zealand we are currently in lockdown – what this means is that we Kiwis are required to stay at home.

Not go out – except to get groceries or go to the pharmacy.

What this actually means is that we are now at home with our families – but only our families.  I am an extrovert… I love interacting with people. My lockdown is a bit different than most:

I recently travelled to Canada and returned to NZ on Friday 20th March and went into “self isolation” – as the NZ Government decreed any international travellers had to self isolate for 14 days.  I had a friend who had an empty apartment so was planning to stay there for the 14 days – so as not to accidentally infect my kids – who then might infect their grandparents (who are over 70..).

So I stayed by myself 30 kilometres (20 miles) from my family. However NZ went into lockdown 6 days into my self isolation so I made the decision to go home and self quarantine myself in 2 rooms (one of which had a ensuite bathroom). Luckily my main client has allowed me to work remotely which has helped my sanity greatly and means I’m not unemployed….

I am now 12 days into my 14 days and I thought I would share how I, as an extrovert, have coped and managed my isolation – from people.

These were my things that I came up with – yours will be different so these are only suggestions. Like the pyjamas suggestion – for me I need to have a state change to get into work mode

  1. Stick to a routine
    Go to sleep and wake up at a reasonable time, write a schedule that is varied and includes time for work as well as self-care.
  2. Still dress well
    Get showered and dressed in comfortable clothes, do the normal things you did. Don’t wear pyjamas all day (but you know what – if that works for you – do it.)
  3. Go outside for some fresh air
    Get out at least once a day, for at least thirty minutes. If you are concerned of contact, try first thing in the morning, or later in the evening.  Remember you only need to keep 2 metres or 6 feet away from people.
    Even just opening a window and letting in fresh air helps.
  4. Talk to people
    This was a huge one for me and I had some wonderful friends who WhatsApp video chatted, Teams “meetings” and even employees at my client site who regularly contacted me to talk. It was a massive difference to my wellbeing.
    For you – you might not like video chats – but please keep in contact with people via text messages at least – it will let them know you’re ok. Or if you’re not OK then you have a way of interacting with your support network.
  5. Be silly
    I have a friend who sends me a picture of a beer every day – a different beer and his description of that beer.  It has made me laugh and kept me slightly sane – because I’ve had to think of witty replies back. Gold.
  6. Eat well
    Stay hydrated and eat good food.  This one may seem obvious, but stress and eating often don’t mix well, and we find ourselves over-indulging, forgetting to eat, and avoiding food. Drink plenty of water, eat some good and nutritious foods, and challenge yourself to learn how to cook something new!
  7. Spend time being a kid
    If you have them – spend time with your kids – being a kid.
    Spend extra time playing with your kids, or if you don’t have any – go play some games, do things that you normally wouldn’t that might bring some playtime to your life. Play is cathartic – for kids and adults too.
  8. Respect each other
    Have a space – it’s yours to retreat to.
    It is important that people create their own separate space for work and for relaxation. For children, help them identify a place where they can go to retreat when stressed. My house currently has 3 “forts” built that the kids use to “get away from it all”.
  9. Kids will be kids
    And adults will be grumpy.
    Kids thrive on routine and that routine has likely been upended – same deal for adults. So expect behavioural issues with kids and adults too – expect increased anxiety, worries and fears, nightmares, difficulty separating or sleeping, testing limits, and meltdowns. Focus on emotional connections with your close ones. They need you as much as you need them.
  10. Self-acceptance is key
    We can too easily be hard on ourselves..
    ..be a bit easier on yourself, accept that you might fail at some things. These are huge unprecedented times and accept everything about yourself, your current situation, and your life without question, blame, or pushback. You cannot fail at this.
  11. Exercise – if its your thing..
    I setup a small gym (weight bench and 4 dumbbells of various weights) in one of the rooms I am quarantined to. I have to say that doing weights has helped my state of mind GREATLY. For you it might just be a 30 minute walk out in the fresh air to get away from things. Exercise is good – you don’t have to run a marathon – just that physical state change.
  12. That thing you keep putting off..
    You probably have a project that you’ve been meaning to do but haven’t (I know I do – there are a heap of things on my rural property I could be doing that don’t require me to leave it!!).  Find something that will keep you busy, distracted, and engaged to take breaks from what is going on in the outside world.
  13. Reach out for help
    We’re here for you, we care.
    Keep up your medications and if you do them –  therapy sessions the best you can. If you are having difficulty coping, seek out help for the first time.
  14. Chunk it out
    Take each day as moment by moment. Break your day or tasks up into manageable chunks. It’s like the analogy of eating an elephant – you do it bite by bite (BTW please don’t eat elephants – they’re awesome creatures!!)
  15. This is temporary…
    It might seem like this will never end – and uncertainty is worrying. Although this is scary and we’re in difficult times it will pass in time.
  16. Most of all – be you
    …and remember to converse with others – however works best for you
    We’re in this together.
  17. Let’s chat
    Do you know me? Reach out and say hi.
    Don’t know me? Reach out and say hi – I like to talk, listen and make people laugh.
    hamish@morphit.co.nz

And please – remember:
Be Safe
Be Strong
and most importantly:

Be Kind

Yip.

 

 

Diversity & Inclusivity – a personal journey

This article is about my own experiences in making my user group and community events more inclusive for people from diverse backgrounds.  I am going to use growing my user group as an example as this one was an example where making small changes had a dramatic effect on my community.  I’m hoping it can help you look at how we can grow our community and be more inclusive.

 

Beer and Pizza – stalwart of any tech event, right?

My user group was lucky enough to have some funding for drinks and food. This is typically beer and pizza. When I took over the user group in late 2015 I noticed there was a number of people who were not eating or drinking. They were also just sitting in groups by themselves whilst the rest of us were standing around eating pizza and drinking beer.

I didn’t like that, so I thought: what can I change?

I made a small change – I didn’t buy as much beer and instead bought an assortment of non-alcoholic beverages (e.g various soft drinks and water) as well as changing up the pizza flavors to include vegetarian options as well. This had a dramatic effect in that people were more engaged since the people who used to just sit by themselves in the corner now were all also standing around enjoying pizza and communing with the rest of the user group.

Start small – you can’t change the whole world

My initial steps were to start with my own user group – to see what effect I could have at a small scale.  I was interested to see if by opening up my user group, would that have a flow-on effect both to my local SQL Saturday event and more importantly – within the greater Christchurch community?

As above, I made a small change – I started small by making food and beverage (F&B) options more inclusive.  This resulted in more and more people from diverse backgrounds who previously would not have come along finally showing up. The user group grew almost 3X from 300 members in 2015 to over 830 in 2019.  Word began to spread that there was an event dedicated to helping people learn, but also provided food that was inclusive to people from different cultures. Also, special dietary requirements are something that I try my best to accommodate as well.

Get some help from like-minded people

When I first took over the user group it was run by three men, so when I started in a leadership capacity I asked one of my friends who was female to join us.  Sarah had been involved in helping out with SQL Saturday so it was a no brainer for me. What occurred was that because Sarah was involved in other community activities, and specifically Women in IT groups – it meant that she helped bring more women to the user group.  It also meant that more women came along because Sarah was there at the beginning of the night during the social part, and so people were more engaged (of course, it helps that Sarah has a warm bubbly personality makes people feel welcome too!).

It isn’t just about you.

In order to grow my user group further, I started attending other user groups as well, often speaking at several of these events too. When I spoke at other user groups I invited people to come along and learn about data.  However I didn’t just go to technical user groups; I also visited other community social group and events (for example, I had friends in the Indian and Iranian communities and spoke at their events about career development). I talked about a culture of true community and how we all had a part to play in looking out for each other.

I mentored young students who wanted to know what they should do to get their first job. Sometimes, I even introduced them to their first boss! Often, I would also look out for tech conferences or university events to attend either as a speaker or as a volunteer in order to further build community.

My aim was to instill a culture of community collaboration.  Now, we were all part of a broader technical community – it wasn’t just “the data people”, or the “the .NET team” but rather an inclusive and diverse group of technologists learning, connecting and helping each other out. When the horrific Christchurch attack happened on March 15 – it was this very communal connection between disparate groups that brought our community closer, and helped us in healing.

Being extroverted isn’t always a good thing

If you’ve met me – I’m, ahem, loud. Or a nicer way of putting it is that I’m passionate about everything I do. Which means I get excited about “making stuff go” – whatever stuff is.

It is easy for others to say, “Well you’re an extrovert; this is second nature to you.

However, being extroverted can have both positive and negative effects. Positively, it can inspire people to make changes, to embrace new things and this worked very well in my career when I had to get a room full of people energized to create, fix or manage solutions. This has flowed on into my community activities in getting people to help grow the community.

There is however a side effect to this, and it is that passion sometimes can put people off. It can be overwhelming for introverted people and also people whose culture is more quiet and measured.  It has taken me some time in my life to know when to tone it down. This happened in my career in 2003 when I had one of the best technical people working for me, but they were very quiet and my team had a very vocal culture. Also, I was the leader of the team and I’m – well – loud.  I could tell this person did not feel included, so instead of walking over and talking face to face which I knew made this person felt uncomfortable, I would instead email/text instead. Also, rather than having team activities at the pub after work, we did a range of other inclusive team activities instead.

The amazing thing that happened was that this person met me halfway – I learnt to become a better listener, and they became a more proactive communicator, and would even walk over to my desk and initiate conversations!

I then decided to try this same approach with people from other cultures that tended to be more reserved. I practiced speaking in a quieter voice, improved my active listening skills and learnt to ask a heap more questions that I normally would – this had a great effect because it engaged them in conversation and allowed them to actively participate.

This approach takes time, effort and requires constant focus of the end goal – to make people feel included no matter what their diversity is. It is certainly not an easy skill to develop, but it’s possible!

It can WILL feel a bit uncomfortable for you

This process is not meant to be easy or comfortable. There will be times when there are misunderstandings because of language barriers, cultural differences and social nuances.  You will need to be socially aware, and ensure that you address any miscommunications in an appropriate manner. Be careful of your personal biases as well. My technique is to reframe the question from another perspective, share context or describe what I’m talking about another way that might help people understand better and connect.

There have been times where I have gone to an event to support a community, and yet felt like I didn’t belong, didn’t know what was going on and afraid to offend others. However, even though I felt uncomfortable in those situations, I stayed anyway because my goal was to be there and help others. That said, I often think to myself how great it would’ve been if the event organizers had cared enough to ask what they could’ve done to make the event more inclusive.

If you don’t know or are not sure, ASK! 

After the March 15 Christchurch shooting, I wanted to donate gifts to children who had lost their parents in the tragedy and show support however I could. This involved attending the local Eid al-Fitr celebrations to mark the end of Ramadan. I’d never been to Eid before, I’m not a Muslim and I was not sure what to do. I looked it up online and spoke to some of my friends who are Muslim to get an idea of what I needed to do or expect. Whilst attending it I did feel overwhelmed at times, but luckily for myself I had a purpose to bring some small gifts to kids to show that the greater community cared for them. That helped me during those times. I wouldn’t say I felt uncomfortable, but I was outside of my comfort zone and it was during this time that I internalised:

“…now I know how it feels for others who feel that they don’t belong.

Since then, it has been an important reminder for me to be more inclusive and continue to help others more as I don’t want people to feel like that at my events, or at any other events. I make a point of saying hi to anyone and everyone who is willing to engage, and always remind myself to be respectful to all dimensions of diversity – be it race, gender identity, religion etc.

The one step that makes a difference

I hope this article helps you in some way to look at how you can boost diversity and inclusion within your own community, wherever you are in the world. I used my user group as an example of how small changes can have a big effect on diverse membership and also helping people feel included. Yet, this is a continuous, ongoing effort because just making one change is not enough – we have to do more. We need to do more.

Often what I thought was fairly straightforward was not for others – so my small step resulted in a big change for others. Often we overlook things that we assume “everyone gets it” ; however, as an example from a technical stand point, my most popular blog posts are the ones that I wrote thinking, “This is so simple that no one will read this.” But I realize that what I might assume to be simple might be a hurdle for someone else.  This is true for people who are diverse – what might seem easy for me as a European Maori male who has been in the IT industry for 20 years – those things can be quite difficult for others because I, too, am privileged.

Perhaps you might feel that all this requires too much change and effort. There is a fear of change that is natural to humans – we are wired to react with distrust when the status quo is challenged.  What happens is that we narrow our perspective and “circle the wagons” which is the opposite desired effect of creating a more inclusive community.

I ask you to look at these changes from a positive perspective,  which is why I wrote about my own experiences to show you that it isn’t always easy but by remaining focused on the goal of helping include people and to embrace diversity – it creates potential for positive change.  Celebrate any and all small successes you have and then use that to drive more improvements to have even bigger success. This will give you a good foundation to work from and more importantly will make others think about their own actions and maybe change how they embrace diversity and inclusivity in their own lives/workplace.

Let’s work together to make our community a better, kinder and more inclusive place, and become better people too.

 

Version 2
We are one.

Yip.

Hi, I’m Hamish Watson and I’m running for the PASS Board of Directors.

Hi, I’m Hamish Watson and I am running for the PASS Board of Directors:

https://www.pass.org/Governance/Elections.aspx

This blog post is why I decided to run for the board, why I think I am qualified to be a board member and the vision of where I think the board needs to go.

I had thought about running for the board for some time – I have been a member of the PASS community since 2013. I’ve been a User Group leader since 2015 and lead organizer of SQLSaturday South Island since 2016.  I have always been someone who cares about what is going on and was a peer support person for new students at my high school and through university as part of the Māori student community. I’m 1/4 Māori and helping my extended student family (whanau) was important to me.

PASS is a global community and it has helped me extend and stretch myself – because without becoming a member of our community I would never have travelled around the world helping others make a positive change in their lives through my talks.

This outward looking viewpoint is probably as a result of being a New Zealander – we’re a small country that does big things. We were the first country to give women the right to vote in the 1890s, we had reforms in the 80s that meant that people of any gender, race and sexuality could be considered a “Kiwi” i.e. we all are one – we should treat each other as one. I try and live my life according to those foundational goals of my country, specifically around helping others who are not included or represented.

I bring to the board a viewpoint that we need to be aware of inclusivity and the diversity of our community. It has been encouraging to see the actions that PASS have started to take and whether or not I get on the board – I want to help continue those steps.

I wrote an article this year around how I and my fellow MVPs need to consider other people:

https://techcommunity.microsoft.com/t5/Humans-of-IT-Blog/Guest-Blog-How-MVPs-can-be-champions-for-diversity-and-inclusion/ba-p/824013

It shows how even at grass roots level we all have a part to play to help people and make sure that they are included, supported and have a positive experience with us.

Two of my endorsements for the board were Reza Rad and Rob Farley- two people who have mentored me over my community career and their tutelage over the years has encouraged me to help others. I have mentored students in India and helped them get their first job, I have helped SQLSaturdays get off the ground in new places – I do this because I know what it is like to have to ask for help. I want to be the person that approaches people and say “can I help?”

Applying for the board is my way of saying to my PASS community – “can I help?”

My vision is to bring some of my positive attributes – I am passionate about helping others, my drive is for people’s viewpoints to be heard and acknowledged and I like to incorporate openness in all the things…

Our technology platform is evolving – we’re Data Platform instead of just SQL Server – the role of the DBA is evolving too (Data Engineer and the like) and PASS needs to be a part of this evolution. To be both a leader in the education space and also to serve our changing community.

Your vote is important and this year we have an awesome strong contingent of people who care deeply about our community. It is very encouraging for the direction of where PASS will go to see more people from around the world put their hand up and say “I want to help guide our community”. I stand amongst champions this year and if I do not get on the board – I know that the other people will make a difference.

My mantra for everything in my life is “make stuff go”, I like to connect disparate technology and people where others say it can’t be done.  After the March shootings this year in Christchurch I saw a community that was hurting and needed some help. I helped them “make stuff go”. I was told for certain things it couldn’t be done – I refused to accept that and even now I’m still involved within that community helping and just being someone that they know cares.

That is what I want to bring to the board – to bring together disparate cultures, viewpoints and thoughts – to bring it together towards a common goal of connecting us all as a global community.

I want to MakeStuffGo and I hope that you do too – if you see me – please stop and have a chat. I want to hear about your experiences, your thoughts, because for our community to grow it needs voices to be heard.

#VoteHamish

but more importantly – #Vote – the number of people who vote in the past are low – and I hope that this year you all will take some time, read the bios and place three votes to make a difference.

Feel free to read Steve Jones (t | w) blog post endorsing myself and 2 other candidates:

https://www.sqlservercentral.com/blogs/voting-for-the-pass-board-2

How to Vote

To be eligible to vote in the 2019 PASS Election, PASS members must have completed their myPASS profiles by June 1, 2019. (If you’re not already a free member of PASS, there are many reasons to join, including the wide variety of Virtual User Groups, free training, and ability to interact with your  chapters and SQLSaturday events!) Voting will commence at 11:30am Pacific Time on November 6th until 12:00pm Pacific Time on November 12th. Election results will be announced November 13th.

You’ll be able to vote via your PASS.org My Profile page.

So please go and vote – make your voice be heard and action change in our community.

Yip.

Blogging – goal achieved – 72 days early

So I started blogging in 2016:

So why blog….now?

It is very interesting going back and reading that first blog post.

It was mostly thanks to my late great mate Tom Roush (t | w) who 20 months later I still miss dearly….

Tom said to me that I should write stuff – to help others. He helped me become a way better person within the community – both SQL Server community and others.

This blog post is dedicated to a wonderful guy who cared and had a wonderful mischievous laugh.

Back in 2016 I wrote 2 blog posts – it was November 2016 so it wasn’t too bad.

Each year I wrote more and Tom would give me constructive feedback on some of the topics etc.

I found that some of the blog posts that I thought were the simplest ones that no one would read were in fact the most popular:

SSRS won’t bind HTTPS to new certificate — “We are unable to create the certificate binding”

Changing TFS to use HTTPS? — update your agent settings too….

Changing TFS to use HTTPS? — update your agent settings too….

I get the occasional email/comment from people thanking me for writing the three posts above – yet I really only wrote them to remind myself when I had to do them!!

Anyways – each year I gave myself a goal to achieve in terms of views – and subsequently failed.

2017 – 3,000 views  X (2,913 – so close!!)

2018 – 15,000 views X (14,493 – agonisingly close…)

2019 – I decided that I would try for 20,000 views and I’m happy to say that on day 293 of the year I achieved it:

Blog Stats

I’m glad that I have continued blogging and writing posts that help people.

Just like my mate Tom told me I should….

Yip.

“xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun” – git in terminal does not work after macOS upgrade to Catalina

This blog post is how to get git going after upgrading to Catalina (10.15).

I use git as a method of storing all my presentations and work files. It was a great way to learn how to use git. I use git commands and run them in the Terminal app on my mac.

However after upgrading to Catalina this weekend:

Problem:

I always run

git status

to see what changes I have locally.

I then run

git pull

in case I’ve made change to source control on my other computer and need to merge changes.

However I got this error:

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Resolution:

The fix was relatively easy and I’ve had to use it before for other apps when upgrading macOS:

xcode-select --install

It took about 3 minutes to install the latest XCODE utilities/libraries and then everything worked again.

Update:

You can also try

xcode-select --reset

But my opinion was – I’ve upgraded the OS I may as well upgrade the utilities as well.

 

Yip.