rssed

a collection of dev rss feeds - blogroll

Add a new feed


Phil Nash

Posts

JavaScript is getting array grouping methods πŸ”—

Grouping items in an array is one of those things you've probably done a load of times. Each time you would have written a grouping function by hand o [...]

Node.js includes built-in support for .env files πŸ”—

With the recent release of version 20.6.0, Node.js now has built-in support for .env files. You can now load environment variables from a .env file in [...]

Easy and accessible pagination links for your Astro collections πŸ”—

Generating pagination links is not as straightforward as it may seem. So, while rebuilding my own site with Astro, I released a <Pagination /> compone [...]

Build bots on Bluesky with Node.js and GitHub Actions πŸ”—

Bluesky is the new social network in town and it's an exciting place to explore right now. I was fortunate enough to get an invite early on and take p [...]

Create a CLI Chatbot with the ChatGPT API and Node.js πŸ”—

ChatGPT has taken the world by storm and this week OpenAI released the ChatGPT API. I've spent some time playing with ChatGPT in the browser, but the [...]

The yaml document from hell β€” JavaScript edition πŸ”—

I recently came across this blog post from Ruud van Asseldonk titled "The yaml document from hell". I've always heard that yaml has its pitfalls, but [...]

Better two factor authentication experiences with WebOTP πŸ”—

Two factor authentication (2FA) is a great way to improve the security of user accounts in an application. It helps protect against common issues with [...]

Alias your Mastodon username to your own domain with Jekyll πŸ”—

Mastodon is different to most online services. It is a federated network, so when you set up an account you need to choose a server to use. Your usern [...]

How to use the Bitly API in Ruby πŸ”—

Link shortening has been around for a long time and Bitly is arguably the king of the link shorteners. It has support for shortening long URLs as well [...]

Don't ever write your own function to parse URL parameters πŸ”—

Sometimes the platform we are building on provides more functionality than we can keep in our own heads. However, depending on the problem, we often f [...]

Restart your app and not your tunnel with ngrok and nodemon πŸ”—

When I am developing web applications in Node.js, I like the server to restart when I make changes, so I use nodemon. When I am developing an applicat [...]

How to display dates in your user's time zone with the Intl API πŸ”—

Time zones are hard. Not only are there a lot of them, but they don't fit nicely into whole hour blocks, daylight savings time changes individual zone [...]

How to stream file downloads in Node.js with Got πŸ”—

Got is a Node.js library for making HTTP requests. It has both promise and stream based APIs and in this post I want to explore how to use the stream [...]

I built a VSCode extension: ngrok for VSCode πŸ”—

Over the Easter weekend, a four day weekend characterised by lockdowns all over the world, I decided to use the extra time I had at home to start a ne [...]

Making a responsive Twitch Embed πŸ”—

I've been trying out streaming live code on Twitch which is a lot of fun. I wanted to share on my own site that I was streaming so I have built a page [...]

The story of a mildly popular Ruby gem πŸ”—

The list on GitHub of repositories that depend on your repository is scary. There's something nice about writing and releasing a library, module, Ruby [...]

Mistakes I've made treating file paths as strings πŸ”—

Some things you do as a developer can work for you for years, then turn around and bite you when you were least expecting. These are the things that y [...]

How to find CFPs for developer conferences πŸ”—

So you've decided to speak at a developer conference? You have a story you want to share with your peersβ€”how you built something, how you learned some [...]

Testing signed and encrypted cookies in Rails πŸ”—

Recently I've been refactoring the tests for a gem I maintain and I needed to test that it sets the right cookies at the right time. But the cookies i [...]

How not to sort an array in JavaScript πŸ”—

Array sorting is one of those things you don't spend too long thinking about, until it stops working for you. Recently I was working with array of ite [...]

How to start a Node.js project πŸ”—

Sometimes I write blog posts to remind myself what I've learned and sometimes I write them because someone else shares something and I want to remembe [...]

2018 in review πŸ”—

I've never been one for writing a review of my year. This year I've found myself not only reading, but comparing myself to others' reviews. I realised [...]

Service workers: beware Safari's range request πŸ”—

You've implemented a service worker to cache some assets. Everything is working well, your service worker is a success, you're feeling good. But then. [...]

Techniques for animating on the canvas in React πŸ”—

I recently experimented with audio visualisation in React on the Twilio blog. While I meant to teach myself more about the web audio API I found that [...]

Implementing one time passwords in Crystal πŸ”—

Crystal is still a young language, there aren't a lot of libraries available yet. For some this could be offputting, but for others this is a chance t [...]

Git commands to keep a fork up to date πŸ”—

I've seen the following tweet about git making its way around Twitter recently: <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr [...]

Spring clean your dev machine πŸ”—

Development machines can build up such a lot of cruft. Old versions, oudated programs and unused caches litter the hard drive. It's good to take time [...]

Use the web share API easily with web components πŸ”—

I'm a fan of the web share API but I was not happy with my initial implementation of the API. It was all a bit complex for what is a very simple API. [...]

CSS: select first-of-class with the subsequent sibling combinator πŸ”—

There are a whole bunch of CSS selectors available to web developers, but sometimes there's still not enough. I found this recently when building the [...]

gzip a file in Ruby πŸ”—

At the start of the year I looked into how to better compress the output of a Jekyll site. I'll write up the results to that soon. For now, here's how [...]

Permissions on the web suck πŸ”—

I am a fan of progressive web apps and the powers that they bestow on web developers to build the next generation of applications. We can write web ap [...]

Two tests you should run against your Ruby project now πŸ”—

I had the fortune of attending the wonderful Brighton Ruby conference last week. It was full of excellent advice, wisdom and code. There was one talk, [...]

Experimenting with the background fetch API πŸ”—

The service worker API is expanding as more ways to use the background dwelling worker emerge. I've written before about push notifications and backgr [...]

Speed up bundle install with this one trick πŸ”—

Did you know bundler can download and install gems in parallel? That's right, using the --jobs option for bundle install means you can set the number [...]

Always install Bundler alongside Ruby with rbenv πŸ”—

Here's a quick tip for anyone who uses rbenv and ruby-build to manage installing and switching Ruby versions. When installing a new version of Ruby I [...]

The web share API πŸ”—

Recently I implemented the web share API for my site as a means of testing it out. If you are using version 55 or above of Chrome on Android then you [...]

Doing things wrong πŸ”—

I wrote a blog post last week and bits of it were wrong. This is not a retraction of that blog post, I just wanted to share the feedback that I got, t [...]

A toast to ES2015 destructuring πŸ”—

I think the ES2015 destructuring syntax is pretty cool. It might not grab the headlines like Promises, Generators or the class syntax, but I find it r [...]

On fixing a favicon πŸ”—

Sometimes open source work is just fixing one tiny thing that bugs you. However, rolling up your sleeves and delving into even the smallest amount of [...]

Dev Tools Tricks: Store objects and elements as variables in the console πŸ”—

Browser dev tools are so full of features it's hard to keep up. I bet every developer knows a different set of features to each other. I wanted to sha [...]

Git back to the future πŸ”—

Git may be the best version control software I've used but it is a complex beast and makes it easy to shoot yourself in the foot. Recently, however, I [...]

A community offers to help πŸ”—

Last week I was blown away by the response to a problem I was experiencing from maintainers of two of the larger open source projects in the Ruby worl [...]

Install a service worker declaratively πŸ”—

There's been some interesting updates in service workers recently. The big news is that the Microsoft Edge development version now has service workers [...]

August is iOS month πŸ”—

June saw me ask for your help as I started to learn Swift. July was busy with travel. Now August is iOS month. I'm lucky that part of my job as a deve [...]

Creating an asset pipeline with Jekyll-Assets πŸ”—

When I started again on this site, I wanted to make sure it was going to load fast. Performance matters. Bundling, minifying and caching the static as [...]

Critique my Swift on Exercism πŸ”—

I am currently in the middle of a Swift and iOS course with the excellent Big Nerd Ranch. Taking a week to dedicate to learning a new language and fra [...]

The surprise multipart/form-data πŸ”—

Building up and sending an Ajax request is so much easier than it ever used to be. No longer must we hassle ourselves with XMLHttpRequest, never mind [...]

This site isn't finished πŸ”—

No running site is ever completely finished. This one is no exception. There is more to build, more to style and more to write. It's a challenge. Welc [...]