There are some situations where you wish to only install the devDependencies from the package.json. We encountered this recently where we set Playwright [https://www.mikestreety.co.uk/category/playwright/] as a development dependency and wished to install the specified version in … | Continue reading
Gitlab offer Static Application Security Testing (SAST) with all tiers of their product, however for any kind of UI integration and configuration you need to be on their Ultimate tier. SAST is a way of scanning your code to highlight any known vulnerabilities. It's worth noting i … | Continue reading
Gitlab offer Static Application Security Testing (SAST) with all tiers of their product, however for any kind of UI integration and configuration you need to be on their Ultimate tier. SAST is a way of scanning your code to highlight any known vulnerabilities. It's worth noting i … | Continue reading
Chase Jarvis once said "the best camera is the one that is with you" and I often apply this to other parts of my life. Playwright might not be the best tool [https://json-schema.org/implementations] to validate JSON with, but if you are already using it and have it set up, then i … | Continue reading
Testing is an interesting topic in the web world; everyone you talk to seems to know how valuable it is, but finding concrete examples on the web is hard. We have started testing our TYPO3 websites with Playwright [https://playwright.dev/] - an end-to-end testing framework that c … | Continue reading
I finally downloaded my ~Twitter~ X archive [https://help.twitter.com/en/managing-your-account/how-to-download-your-x-archive] as a trusty zip file and set up a version of Tweetback [https://github.com/tweetback/tweetback]. You can see my tweets here [https://tweets.mikestreety.c … | Continue reading
I revel in reading about other peoples processes, file structures and best practices. I soak up their standards, seeing if I can optimise, tweak or evolve my own to seek that golden chalice of efficiency. Following in the same vein of Daniel Siepmann's TYPO3 Composer Best Practic … | Continue reading
2023 was a year which seemed to fly by - it doesn't seem like 12 months have passed since I was last reflecting my annual achievements. Despite this, there were some pretty big events this year, when I actually think about it, but it all seems to be compressed into, what feels li … | Continue reading
There are a lot of fantastic tools, frameworks and utilities out there for helping with development in various ways. We are so lucky to be living in a world where people make amazing stuff and then just, Open Source it. The one thing I often struggle with is configuration of them … | Continue reading
Following on from the previous post about logging in and saving cookies with Puppeteer [https://www.mikestreety.co.uk/blog/login-with-puppeteer-and-re-use-cookies-for-another-window/], I also needed to access content and, more specifically, a JavaScript variable present within th … | Continue reading
For a recent project I needed to automate something which was only available in the CMS via a login. To help speed to process up, I created a script which can login with supplied credentials and store the cookies in a local file. The main process can then use these cookies to car … | Continue reading
Pocket Casts is a Android podcast player I've been using for some time. I wanted a method of extracting podcasts I had listened to to gather some stats and keep a history of my podcasts. Pocket Casts doesn't offer an official API, unfortunately, but does have some data available … | Continue reading
At Liquid Light, we maintain several public [https://github.com/orgs/liquidlight/repositories] and private packages for our TYPO3 installations. Over the last couple of years, we have honed the development and release process of the packages so that 6 developers independently wor … | Continue reading
We needed to build a Docker image via Github Actions and push to the Package repository to create a public, shareable image. Add the following in a .github/workflows folder with a .yml extension. You'll also need to add the following secrets to the respoitory: * DOCKER_USERNAME … | Continue reading
I write PHP on a daily basis and often, as with most programming, need to check if something is there or not, or if it is what I expect. Beyond if statements, there are ternary operators. Things like the Elvis (?:) operator or the Null coalescing operator (??) can be used to make … | Continue reading
I've written before about multi-stage Docker builds [https://www.mikestreety.co.uk/blog/creating-a-multi-stage-docker-build-to-make-your-images-smaller/] to help you make smaller images, however today I discovered you can build images out of each of the stages. The advantage for … | Continue reading
Installing private composer packages can be a bit like Crufts - you sometimes have to jump through so many hoops and tunnels and all you get at the end is a belly rub. However you host your packages, the general theory is the same. I would advise finding a host which can act like … | Continue reading
I was listening to Episode 216 [https://www.codingblocks.net/podcast/better-application-management-with-custom-apps/] of the Coding Blocks podcast and the conversation of "Open Jim" hours came up. The idea being that a senior developer has some set hours (I think it was mentioned … | Continue reading
Website deployment strategies are tricky things to get into. There are so many ways and means of deploying your application to the web that it is hard to pick one. That's why, when you find one you like, you just need to stick with it and tweak it, rather than trying to re-invent … | Continue reading
Every package that we maintain at Liquid Light, be it private or open-source [https://github.com/orgs/liquidlight/repositories], all follow the same conventions. One of those conventions is the CHANGELOG.md and UPCOMING.md file contained within the repository. The CHANGELOG.md de … | Continue reading
Lock files should exist so that anyone installing the dependencies get the exact same version. In my mind, lock files should not be modified unless you are actively updating the packages required. It seems that sometimes, however, npm decides to update the package-lock.json file … | Continue reading
Since the mass exodus of Twitter after Elon bought it, I've felt unsettled in the Social Media world; like I'm sitting in someone else's house and can't quite be as comfortable as I would like to be. Like a lot of my Twitter followings (and followers), I moved across to Mastodon … | Continue reading