Darragh ORiordan

Hi! I'm Darragh ORiordan. I live and work in Auckland, New Zealand 🥝 enjoying the ocean 🏄 and building things on the web 💻 Contact me on Twitter!


Typescript error "does not satisfy the constraint new" when using InstanceType in typegoose

August 06, 2019

If you get an error when trying to use InstanceType from typegoose as a parameter to a method in typescript make sure you are importing it from typegoose explicitly. There is a thing called InstanceType defined in JavaScript already. Typescript will use this by default and that’s where the error is coming from.

read more...

Returning null from a GraphQL mutation in type-graphql

August 06, 2019

Null is not a GraphQL type so to return null from a GraphQL mutation you have to return a GraphQL type that is nullable. All GraphQL types are nullable by default so you can just return a bool in the schema but return void from the implementation. It shouldn’t be too common to have a null response though, even for a mutation it could be better to return a state of the created item.

read more...

How to find distinct items in an array in javascript or typescript

August 05, 2019

I have to sort a bunch of work items in to organisational areas so I needed to know what were the distinct categories of objects in an array. In C#/Linq there is a nice IEnumerable.Distinct(f(x)) method available but JavaScript doesn’t have something like this yet. I didn’t want to install a helper like lodash if I could avoid it. Luckily my list was simple strings so I was able to use ‘Set()‘.

read more...

How to await async functions in specific sequence using typescript

August 04, 2019

I was posting messages to a slack webhook recently and I wanted to post a list of messages in the correct order. I had to await each one before calling the next. I tried a few different methods but only one worked the way I expected it to.

read more...

How to log full objects in winston (hint... Use meta data)

July 30, 2019

I’m exploring the Azure Devops API at the moment and I find logging out the API responses is far better than trying to understand the documentation. It seems super obvious now but it took me some messing around to figure out that you need to supply the object as meta data to the winston logger!

read more...

How to check bitwise mask in typescript

July 29, 2019

I’m currently building a little app that talks to the Azure Devops API and I had to check a bitwise operator in typescript today. I hardly ever do this these days so it took me a bit of time to get it right!

read more...

A gitignore file for Katalon projects

June 23, 2019

You need to add a gitignore file to your katalon directory or you will have lots of compiled files in your repository and it will be harder to compare changes in diffs when reviewing pull requests. Here is a suitable git ignore file for Katalon projects.

read more...

How to use session cookie authentication for Katalon API integration tests

June 16, 2019

This post describes automatically logging in to a webpage to get a session cookie and subsequently using the cookie for API authentication in Katalon. It shows how you can pass the cookie through a global variable to make authenticated API calls.

read more...

How to force a rebuild on Heroku without pushing using heroku-release-retry plugin

March 02, 2019

I had a deploy on Heroku fail because of a database issue. The code deployed but a dependancy meant that the application couldn’t start. If you try to run you just get “Everything is up-to-date”. My code didn’t need to change but I wanted the “deploy” to be re run WITHOUT pushing a new commit.

read more...

A retrospective on mentoring four new developers

February 12, 2019

Late last year I had the pleasure of helping a team of students build a prototype for a non-profit here in Auckland. The non-profit needed a prototype to raise more funds and get feedback on their plan. I’ve helped run teams and mentor junior developers in large organisations. It’s much easier because the support, tools, frameworks, systems of the organisation are already available. For this project the student teams had a blank slate and had to decide on everything from how they would communicate with the sponsors to how they would host the software. I wanted to write down what I learned and note some of the mistakes I made so that I have a framework for the next time I help new developers!

read more...

When Mocha doesn't run tests in subfolders on either windows or your CI server

January 29, 2019

I use a Windows PC for development and I had a problem where some of my mocha tests were not running on my CI server. The issue was that I use GitLab’s CI system which uses a Linux docker image to run the tests so the difference was the OS. This would also affect teams with developers on both Windows machines and Macs. Here’s how I fixed it…

read more...

Adding static JavaScript files to a react typescript project

January 25, 2019

I had to import a JavaScript in to my React project with typescript and typescript gave me an error. It wasn’t causing my build to fail but it was annoying seeing it in the console. Here’s how I got rid of the error.

read more...

Fixing Docker and docker-compose named pipes error (code2)

January 24, 2019

Docker on Windows 10 sometimes breaks after an upgrade. When you try to list containers or use docker-compose you’ll get an error on the command line. Here is an easy way to fix this issue.

read more...

Be careful of the JWT hype train

January 23, 2019

I’ve been researching using node as a back end for a few months now and SO MANY node articles, courses and project “starters” on GitHub suggest using JWT on your client facing API as a session token. I think there’s way too much hype around it and people are using JWT because it’s shiny!

read more...

3 tips for starting and finishing side projects

January 22, 2019

Some of us like to make things for the web but everyone finds it super hard to find time to start and finish any side projects. If you’ve been thinking about something for a year but haven’t even started, here are some tips to help you start and finish more stuff!

read more...

How to add Bulma and PrismJs to a Gatsby project avoiding CSS conflicts

January 20, 2019

Bulma is a popular CSS library like bootstrap. It’s not too difficult to add to Gatsby but there are some tricky bits where you need some plugins and the CSS classes can conflict.

read more...

How to add cors protection to an express application

January 17, 2019

Cors protection is a recommended security configuration for any api. It protects your customers from unexpected attacks by blocking websites you haven’t approved. If you have a devOps team they will handle this for you. But if you are a single maker with an application on Heroku and front end on Netlify you need to implement this yourself.

read more...

Converting a road bike into an electric bicycle

November 25, 2018

This is the guide I wish I had when I was researching how to convert a 2013 Giant Defy road bike in to an electric bicycle using a Bafang centre drive kit.

read more...

Fuzzy Friday

May 31, 2018

Hi, thanks for signing up to the newsletter. Mary Meeker (Kleiner Perkins) has released the state of the internet report for 2018 - 294 pages of awesome . Personalised shopping and mobile advertising are growing like CRAZY!

read more...

Setting up a macbook for a windows developer

March 25, 2018

I recently got a macbook at work and I’m doing only web development these days so no Visual Studio. I had to do a bit of reading to get things set up and I don’t want to do it again so here is a post for me!

read more...

The Customer Workshop

November 21, 2017

I lead a team of developers that work on one of the busiest New Zealand websites. We have ~4 million members and ~850,000 unique users every day. Working at this kind of scale means the real people who buy and use our products can get lost behind user personas or Jira ticket numbers.

read more...

When agile gets dangerous

September 14, 2017

If you’re selling your teams on some form of agile but the reality they work in is completely different, you are damaging and demotivating your teams through confusion and an impossible to achieve vision. If you’ve adopted ‘agile’ do yourself a favor and check the health of the adoption right now.

read more...

Radical Candor in Practice

August 14, 2017

A.k.a. how to get the truth from your direct reports while you sit back and eat cake. You’ve been a manager for a year and you’re not sure it’s all going OK? You don’t know if you’re providing maximum value to your team or which specific aspects of your people leadership to improve?

read more...

Saving your windows lock screen images

July 26, 2017

Here is a quick one. One of my colleagues was trying to figure out how to get the stunning windows lock screen images. They are hidden away in a folder on windows but this script will get them, rename them to .jpg and place them in a folder on your desktop.

read more...

Giving your first machine learning workshop

June 20, 2017

Last week I offered to give a workshop on machine learning to share some of what I’ve learned so far. I had 2 goals for my workshop – first, I wanted to show everyone that they shouldn’t be afraid of machine learning. Second, I wanted to get people set up with anaconda so they can continue to learn themselves.

read more...

Startup Weekend

May 25, 2017

Wow, it’s a week after Startup Weekend Auckland. I’ve had time to get my thoughts straight about the whole experience. I learned a hell of a lot of positive lessons about idea validation, about myself and about working in teams.

read more...

Cats and Dogs

May 25, 2017

Last week I had an amazing opportunity to present about machine learning and innovation to 110 people leaders at my company. It was a mixed audience of technical and non technical people.

read more...

Create-react-app react-router and Heroku

April 30, 2017

I’ve been putting together a React app and I needed cheap, fast hosting so I went to put it on Heroku.

read more...

Entering my first kaggle competition

February 28, 2017

Three weeks ago I discovered the fast.ai course. They offer a practical deep learning course for coders where you get straight in to building neural networks. They provide a huge amount of support through wikis, forums, aws scripts and tooling, videos and book recommendations.

read more...

Fuzzy Friday

February 24, 2017

From lunch to acquisition, how Atlassian bought Trello . Success stories from developers who started at age 35,40,45 .

read more...

Webstock 2017 Part 1

February 19, 2017

Web Stock is tech conference like no other, held in Wellington, New Zealand. Once again I left feeling energized and impassioned after listening to all the speakers on such a wide range of subjects.

read more...

Webstock 2017 Part 2

February 19, 2017

Web Stock is tech conference like no other, held in Wellington, New Zealand. Once again I left feeling energized and impassioned after listening to all the speakers on such a wide range of subjects.

read more...

Fuzzy Friday

February 14, 2017

Seth Godin wants us to stop calling them soft-skills. A beautiful photo story of Faberge and his eggs.

read more...

Smart Bear Ready API

February 02, 2017

I recently had a problem where our test analysts use Ready API software from Smart bear but our API authentication does a custom hashing function on the content. For tests to work we had to hash the entire request and apply headers for each test step. There is an events hook in Ready API where you can add Java code to be run for event triggers. Unwrapping the content in the available request context API was difficult to figure out. First open the Events dialog. Add a new event for RequestFilter.filterRequest to do something for every test step with a request. https://gist.github.com/darraghoriordan/3915a246198dfe72e39f90f72566cc5e#file-header-groovy

read more...

Swagger UI: Custom HMAC hash authentication headers

January 11, 2017

Last year I launched a new API for an integration project. It’s using Microsoft’s WebApi framework. I was looking for a fast way to document the API so I wouldn’t have to do much work and clients could use the API easily. After some research it was obvious that I needed Swagger.

read more...