Express v5: A Decade in the Making

After ten years the version 5 pull request for Express has been merged. The original pull request was created back in July 2014 and from speaking to a lot of software engineers had been considered dead. This release is intentionally boring with the focus being security enhancements and improvements to the core foundations to enable faster development in the future. This has parallels to Node prior to the more frequent release cadence after being pushed by iojs. Express v5 will only support newer versions of Node, with the oldest supported version being 18 (maintenance LTS, released 2022). Security concerns and refinement of patterns are core to the release as is simplifying maintenance. ...

October 31, 2024 · 2 min · Nick Hayden
Maybe the real Next JS was the friends we made along the way

Maybe the real Next JS was the friends we made along the way

Over the last few weeks there has been a lot of discussion on Twitter and YouTube about the merits of serverless and reliance on companies like Vercel. The cause of this was recent changes to Vercel’s pricing that led to massive increases for developers particularly in the hobbyist space. The debate centres on two points: the first is that you should maintain your own infrastructure to retain ownership and independence. The other side believes that Vercel’s pricing increases are insignificant compared to the value they provide. ...

April 15, 2024 · 3 min · Nick Hayden
You need to know about this new security feature in Deno

You need to know about this new security feature in Deno

Deno is a Javascript runtime like NodeJS and it has a new security feature that you need to know about. We all love Deno’s allow permissions but this month they released a new deny permissions API that might change how you write your applications and run scripts. Check out the video, have a play and let me know in the comments what you think. Will you keep using Allow permissions? Does Deny permissions change how you write your applications? You can read all about Deno’s new permissions API in the 1.36 release notes https://deno.com/blog/v1.36 ...

September 20, 2023 · 4 min · Nick Hayden
Right Tool for the Job

Right Tool for the Job

“Right tool for the job”, it’s a phrase you’ll hear in any field. I mean, really, who wants to use the wrong tool for the job? The phrase can mean different things to different people, sometimes it means you’re using a new framework that is purpose-built for your task and sometimes it means using a tried and true method your team is familiar with and operates quickly with. It’s not always obvious to know when you’re using the right or wrong tool and explaining that to company leaders can be difficult, especially when budgets will be increased or a project will take longer. ...

July 11, 2020 · 3 min · Nick Hayden
Closures exist, so what are they?

Closures exist, so what are they?

Closures are a style of writing JavaScript that provides object data privacy. What this seems to mean is that you can define a function within another function. Your child function will be able to access things from the parent function, but the parent function will not be able to access variables in the child function unless it explicitly calls the child function. The child function might also choose to return only a subset of data that it was provided. This is called partial application. ...

March 26, 2019 · 3 min · Nick Hayden
WTF is strict mode?

WTF is strict mode?

WTF is strict mode? You might have seen your colleagues dropping in ‘use strict’ into their JavaScript code and wondered: WTF does that do? Another place you’ll often see use strict in place is within libraries and shared code on somewhere like GitHub. Strict mode is an opt-in way for developers to follow a restricted set of JavaScript. One reason developers might use strict mode is because it allows for greater optimisation by the browser. Using strict mode means that the browser has to make less judgement calls about what is and is not possible this means that the browser can take short cuts when it comes to interpreting your code because it knows you’ve followed a stricter standard. ...

February 27, 2017 · 6 min · Nick Hayden
Understanding why we use `===` in JavaScript

Understanding why we use `===` in JavaScript

Understanding why we use === in JavaScript Often in JavaScript you’ll see a developer use === in their conditionals instead of ==. Most languages will use single equals for assignment and double equals for comparison, JavaScript is no exception here. This third variation of triple equals is included in JavaScript and sees to cause the most confusion for developers and it turns for a very good reason. Triple equals is most often included in loosely typed languages such as JavaScript and PHP. A language like Ruby also has triple equals but it is used in a different way. ...

February 20, 2017 · 3 min · Nick Hayden
Working with Google Custom Search (GCSE)

Working with Google Custom Search (GCSE)

Lately I’ve been working on a website that integrates Google Custom Search Engine (GCSE). I haven’t worked with GCSE before and found it somewhat difficult to work with. The API and creating the search is a really easy process and the Google team did a great job with sensible defaults. The main problem for our team was that we had already built a search component in our front-end build that looked like this: ...

February 9, 2017 · 3 min · Nick Hayden