So what's going on? This is a reflection on this post (of the same title) that I thoroughly enjoyed, by Flavio Copes. "I am the genuine article, therefore I don't have to try. I just have to be. You, on the other hand, have to try any passing bandwagon, because what else have you got?" — Meera Syal, Life Isn't All Ha Ha Hee Hee It seems that a great many people are feeling the pinch of a tech job…
2024 has overall been a great year for me personally. I believe it represents a turning point. 2023 was tough, but 2024 went some way to redressing the balance and I am even more positive about 2025 because of it. Here are a few highlights: We went to Japan! My first time in Asia. The best trip I've been on so far. I managed to get NativePHP support for Windows released, amongst many other…
Avoid the shiny Avoid comparison Some examples Laravel Build tools Typescript and JS frameworks The Web Platform What I keep up with This morning, I watched a video advertising a course aimed at developers. One of the first sentiments proclaimed is that of feeling left behind, that tech is moving too fast to keep up. I think we're probably one of only a few industries globally that have this…
Some history, some context When does an SPA make sense? So, why are SPAs bad again? Your front-end and back-end get decoupled! It may hurt customisability Performance will suffer So what's the alternative? I came across this interesting article by @gregnavis the other day. I guess it's from a few years ago now, judging by some of the other posts on his blog. But it still holds up. It's maybe even…
Job hunting Freelancing Side Projects NativePHP Spred Veliance & Laradir Streaming Personal Things This year has been quite a ride! 🎢 It's felt like the first real year since 2020 that things have been somewhat "normal". However, looking back, it's been anything but normal. Job hunting ¶ Although I finished my job at Elvie back at the beginning of November 2022, I allowed myself a couple of…
I don't want to hapr on about Twitter's downfall as a medium for people to connect, but... as I mentioned a few weeks ago, the situation is pretty bad right now. For a while, I truly believed it was just me, but over the past few weeks I've been picking up a vibe fromjust a few people I follow: I would really like to interact more with others here. But the feed is totally useless for some weeks:…
Aaron Francis is a rising star in the Laravel community. Over the past couple of years he's rocketed up because he's a genuinely thoughtful, intelligent and funny guy. I like him. I met him very briefly at Laracon US this year and I've had some great public and private interactions with him through Twitter. He's an awesome dude. I follow a lot of really interesting, smart, funny people, and I…
I started streaming on Twitch a while ago. My plan was to do it regularly, but you know how life gets in the way. I'm going to make a concerted effort to do more tho going forwards. Streams are going to be focused on my side projects and open source work I stream on Twitch currently (though I might move fully to YouTube as Twitch is a bit too gaming-focused) and I keep recordings organised on…
The problem Why is this happening? Back to why... There is a solution! I'm pretty proud of the Gitamic diff viewer. It's not perfect (and probably never will be thanks to different browser rendering engines), but it can handle some pretty gnarly diffs quite rapidly. ("Quite rapidly" being somewhat subject to your perspective) Of course, a lot of this is down to browsers rendering engines getting…
Why Nova? What about Filament? Is a package really necessary? I recently spent a little time on my Laravel Nova CSV Import package, one of my main open source packages. This came at the request of a sponsor. This gave me the opportunity to level-up some of the UI and spend some time diving into some of the open PRs and issues. Please watch the video above for more details about the features that…
Flicker Flicker ¶ I originally wrote this 1 year ago today but didn't publish it. Just a little flicker, That’s all it takes. Makes smaller and lighter Until it’s all erased. Can’t get close to touch. Intense – it’s just too much. Life is drawn: out and up And away, away, away. A tiny flicker, That’s how it starts. My heart’s beating quicker As it tears our world apart. One more lick That laps at…
I love a good CMS. I don't like how slow they can be to load pages. A sudden spike in traffic and even a rapid CMS can cause an unprepared server to grind to a halt. I used to love running my own servers, but I don't have the time to do it for my personal site - I just want it to be as fast as possible for as many people as possible. As you may know, Statamic is my go-to CMS. It's excellent and…
I'm really frustrated with Twitter lately... I have developed an unhealthy reliance upon Twitter When I'm not on it, I'm thinking about it. When my phone is in my hand, my thumbs default to Twitter I've been thinking about this for a while now and yesterday when on the train back to London I realised just how bad it's… pic.twitter.com/LNr5ZJhaAx — Simon (@simonhamp) August 22, 2023 I really…
You already know this. Unless you've been under a magically floating rock for a couple of weeks. Please go check it out: nativephp.com I'm still working on the Tauri driver, but Marcel did an awesome job getting the Electron version done and dusted in time for Laracon US. You should watch his talk! And if you build something or write about it or make a video, please share it on awesome-nativephp -…
I said "no"! 😱 The only offer on the table I'm no beggar I haven't been super vocal about this very much over the past few months (I maybe need to be better at that?), but you may know that I left Elvie back at the end of October 2022. I was there for almost 6 years, the business grew from 30 people to almost 300, from a £(a few million) to £(tens of millions) in revenue and I was privileged to…
What this runs on I finally did it! I took the plunge and am running my own blog. It's been many years since I ran my own site 'properly'. And now that it's practically free, it was about time. For the eagle-eyed among you, you'll know that I sporadically published content to Medium. But with the sheer volume of content there—plus their approach to paywalling–I've really lost the desire to publish…
Goldilocks Autonomy What it isn’t So what is autonomy? Crossing lines Business leaders don’t have a clue Business leaders want to be too involved in the ‘how’ The agile team want to own the ‘what’ Blurred lines Not too much, not too little — just right The goal Goldilocks Autonomy ¶ One of the principles of the Agile Manifesto: Build projects around motivated individuals. Give them the environment…
4 Years In What lies ahead 4 Years In ¶ I’ve been at Elvie 4 years already! I can’t quite believe how quickly the time has gone by or the amazing things we’ve accomplished as a team. 2020 was by far the hardest year, but in many ways the most rewarding and exciting so far because of what it has teed up for 2021. Like many developers who have a history working for web design agencies or…
Spelunking desktop apps saves time A tale of restoring Tower bookmarks 0. Quit Tower 1. Edit the bookmarks plist 2. Update the Tower database 3. Open Tower Lessons Spelunking desktop apps saves time ¶ A tale of restoring Tower bookmarks ¶ I’m a big fan of Tower , a native Git GUI for Mac and Windows. I was really lucky to be working with Joel Gascoigne on a project while he was building Buffer…
Supporting multiple TLDs in Laravel Valet Dnsmasq Valet Supporting multiple TLDs in Laravel Valet ¶ Valet is great. Occasionally though I need an app to respond on a different TLD to the default one. And there are even times when it makes sense to have an app respond on multiple TLDs (e.g. to prove some multi-domain functionality). You may have some secure assets hosted by a third-party that…
My Wild Security Head-Fiction My Wild Security Head-Fiction ¶ I’m not a security expert. I confidently believe I don’t have the kind of mind it takes to ‘always expect the worst’. I couldn’t be a threat analyst, defence strategist or CIA agent because I think you need a drastic view of the world which says something along the lines of ‘everyone is a potential threat’. That being said, occasionally…
You Shouldn’t Trust Your Composer Dependencies “Nope! Composer is safe!” Adventure Time An Acceptable Risk What else can you do? Enter Ensemble You Shouldn’t Trust Your Composer Dependencies ¶ I’ ve got a little present for you : you’re enjoying a well-earned break from work! However, during your holidays, your mission-critical web app has been taken over by some nefarious third party and is being…
Code: Selfish What it’s not What it is Be selfish Code: Selfish ¶ I want to talk about coding selfishly. This isn’t what you think. Coding selfishly is about assessing your motivations, your joys and coding in a way that brings you the most long-term value. It’s really a form of self-love. I believe coding selfishly will change your approach to programming. What it’s not ¶ Coding selfishly is not…
How your choice of tech can help you grow Making architectural choices for scaling your business Making architectural choices for securing your business We’re hiring! How your choice of tech can help you grow ¶ I’ve been working at Elvie for almost 2 years. My remit has been to migrate our systems from the slightly dated homebrew framework that we launched on to an open source alternative for many…
Why and how you should use Tailwind to build your next Statamic theme Open your sails Blow me to Bermuda! Alakazam! Keep all of your theme assets together Use Tailwind’s utilities properly Don’t forget your pre-processor! Deployment strategies Bonus round! PurgeCSS + Tailwind + Statamic = 😍 ⚠️ Heads up ⚠️ In conclusion Why and how you should use Tailwind to build your next Statamic theme ¶ I have…
Smile Be thankful Resist the pressure to own things Be good to yourself, but no more than necessary Be a friend Reflect; don’t regret Fail, learn, repeat Stop. Think. Speak Exercise your mind, your body, and your soul Work hard Be true Respect others Value life Give openly Love deeply Keep learning Breathe Make time Don’t agree with everything, but don’t be disagreeable
Job within a Job: Scheduling Inception with Laravel Queues Queues & Jobs The Task Scheduler Dream within a dream Job within a Job: Scheduling Inception with Laravel Queues ¶ This article originally appeared on LaravelUK . This may seem obvious to many of you, but I always think it’s worth talking about the obvious things in case it helps someone. I couldn’t possibly count how many times I’ve been…
Announcing Ensemble Bringing your Composer dependencies together Keeping you informed about outdated packages Security Vulnerabilities Bringing it all together How it works Requirements A note on security It’s not just apps, you know… Automated alerting Announcing Ensemble ¶ Bringing your Composer dependencies together ¶ This post originally appeared on the LaravelUK blog . TL;DR : Ensemble is an…
What if we, the consumers, took control of our data completely… what if we all make a stand that forced big tech (and others eventually) to come to us for our data instead of just handing it to them on a plate? If we could do that, then we’d stand to benefit the most from it, stepping up with our biggest bargaining chip in hand , instead of sacrificing our place at the table for free. I would love…
Thinking in packages Path repository Override PSR-4 Autoloading Thinking in packages ¶ If you’re in the mindset of writing and using your own Composer packages, no doubt you’ve come across the following problem: “How do I keep the (frequently updated) package code in the main application up to date in development without having to run composer update all of the time?” Actually, it’s even more…
A New Way to Hire Tech Talent? For a change, why not try this? Let’s run some numbers… Now for the other option A New Way to Hire Tech Talent? ¶ Hiring goes a little something like this: Hire traditionally — firewall interviewing (resumé culling, technical testing, group interviewing) to whittle candidates down and pick the ‘best’ of the bunch. Time-intensive, unfair to candidates who may be…
A Modular Monolith in Laravel Lumen What’s not in Lumen A Ghost in the Shell MaaM: Module as a microservice Packages all the way down A Modular Monolith in Laravel Lumen ¶ If you use Laravel, you’ve probably heard of Lumen. In case you haven’t: Lumen is the micro-framework to Laravel’s full-stack . Lumen is meant to be fast. As far as PHP micro-frameworks go it’s probably not far off being the…
On API Evolution: Globally Consistent Interfaces Maintaining the interface contract is a two-sided affair One Approach Consistency FTW! Results Conclusion On API Evolution: Globally Consistent Interfaces ¶ Maintaining the interface contract is a two-sided affair ¶ Before you dive into this article, it’s worth reading Phil Sturgeon’s enthusiastic piece on API Evolution for REST/HTTP APIs if you…
Breaking the Chain Querying Eloquent Models consistently across your application Requirements Problems Solutions Explicitly store the current Builder in the model Results Breaking the Chain ¶ Querying Eloquent Models consistently across your application ¶ I’ve got to admit I’ve been doing something that some may find pretty disgusting. I’ve been doing it for a while now. I’m happy doing it because…
You Don’t Need a Website You Don’t Need a Website ¶ I came across this Reddit post the other day. The gist of it is: Websites are an expensive necessity that companies hate paying for And you can understand why sometimes. Some organisations just have a completely absurd view of who the website is for and how to make it a success: Source The top-voted comment on that Reddit post (at the time I read…
When deciding which framework to use a few months back for all of our new systems, there wasn’t even a mention of framework speed. The truth is in practice that it just doesn’t matter for a large proportion of use-cases and certainly not for ours (funded startup with tens of thousands of users). If it becomes an issue, you’ll probably be moving away from a framework altogether and you’ll have a…
Stuff to do when you’re not well Learn new stuff! Stuff to do when you’re not well ¶ Last week I was sick with a cold. I was basically indoors for 5 straight days (one of those actually in bed all day). I was also unable to sleep for a couple of nights. So I had a lot of extra time on my hands last week and, despite needing to make a full recovery, I also had the itch to start something I’ve been…
I love sharing these sorts of mistakes. Thankfully, I’ve only had a few gut-wrenching moments and they’ve all been largely recoverable. The worst panic situation I had was when my hosting provider decided that after a single failed payment (through no fault of my own) they would shut down AND delete our server without warning. Thankfully we had almost everything on staging. The key lessons to…
How to install the MongoDB extension in MAMP for Mac How to install the MongoDB extension in MAMP for Mac ¶ Yes, I use MAMP. Sue me (please don’t sue me). It’s actually a pretty good stack for standard web dev and I’ve found that it works fine for most of my needs, even with complex Laravel applications. But recently I needed the MongoDB extenstion and the PHP builds shipped with MAMP don’t…
Why do many web developers hate jQuery? Why do many web developers hate jQuery? ¶ The following is an answer I originally posted to the above question posed over on Hashnode , the developer community. Thought it was worth sharing :) When jQuery was the new thing, people loved it. It made cross-browser JS so much easier, it taught us a few new tricks, it made AJAX and animations dead simple (which…
Punctuated Excitement Sunsets always lead to sunrises Punctuated Excitement ¶ When I try to tell new acquaintances about what I do, the conversation usually finishes in 30 seconds with them saying something like “oh yeah, IT, I thought so” or “so you’re a web designer?” So I don’t really get a lot of time to show them how exciting it is for me. I feel I’m probably at my most passionate when…
The 10 (ok, 15) steps to setup your first Laravel Spark app a.k.a. “The long way” The 10 (ok, 15) steps to setup your first Laravel Spark app ¶ a.k.a. “The long way” ¶ Edit: Since writing this, Laravel Valet has been launched. I haven’t tried it yet, but if you use a Mac it looks like an excellent foundation for your development environment and ideal for setting up Spark installs ( among many…
Why and how to override Laravel’s built-in auth controller methods Why and how to override Laravel’s built-in auth controller methods ¶ Maybe like me you like to do things the ‘Laravel way’. So let’s say you’re still using the out-of-the-box Auth flow (can anyone recommend an easy, drop-in alternative?). You want to keep that flow without having to rewrite it, but you realise it doesn’t quite do…
Stop. Now. Stop. Now. ¶ Stop sharing little bits of junk about your life on social media. Stop reposting other people’s junk. Get your ideas clear in your head and write them down properly, in full and beautiful prose. Take the time to be creative and make something that’s worth a damn. Let people engage with it, react to it, learn from it, be excited by it – not this empty desperation for a…
Creating new variables in Laravel’s Blade without resorting to writing PHP code Creating new variables in Laravel’s Blade without resorting to writing PHP code ¶ Here’s a quick trick in case like me you occasionally need to declare a new variable in a Blade view. Blade doesn’t natively support declaring new variables within its own syntax, opting to rely solely on the ones explicitly passed to it,…
No No ¶ Hi, We are looking for a Sponsored post written by you to match your website builtwithbootstrap.com . The post would need to contain a minimum of 2 paragraphs relating to online casinos and a link to one of our client’s websites. We can pay directly into your paypal account upon completion. Please let me know if this is something you do. Kind Regards Just no.
Starting Today Starting Today ¶ I’m 30 today. Some would say I’m past my prime. But I can’t help but feel an overwhelming sense of positivity towards the rest of my life. The first 30 years have been filled with growth, learning, angst, pressure and a bundle of other wonderfully weird things (and people). At this self-made milestone I feel like a bottled whisky. A tasty and wonderful opportunity…
My Biggest Mistake… So Far or: The Unlikely Cause of Feline Obesity The Benefits of Being The Right Amount of Selfish My Biggest Mistake… So Far ¶ or: The Unlikely Cause of Feline Obesity ¶ Check out this video from a couple of weeks ago: Selfless vs SelfishDid you notice the guy’s sign? “Take what you need ” … how many really needed the money they took? Probably none of them. Contrast that to the…
Don’t Fail at Failing! The Cost of Failure Don’t Fail at Failing! ¶ “Fail fast, fail often.” “If you don’t fail, you won’t succeed.” “Fail! Fail! FAIL!” We are in a fail culture. Not just around Silicon Valley, startups and the whole process of build-test-refine product development, but in life in general. It’s become socially acceptable to slip up, make a gaff, to be imperfect… to the point where…