Installing PhpStorm on WSL2 Ubuntu

Mega quick notes on how I finally managed to install PhpStorm on Windows 11 WSL2 Ubuntu VM so that it starts in the XLaunch window server.

I have no idea what I’m doing so the terminology is probably completely wrong.

Let me know if this helps you on Twitter @GeeH

In Windows 11, install VCXSRV from – I have no idea if this is needed or not but I’d already done it ūü§∑.

Enable systemd (from

Create a file at /etc/wsl.conf containing:


Start snap at startup:

sudo systemctl unmask snapd.service
sudo systemctl enable snapd.service
sudo systemctl start snapd.service

Install PhpStorm using Snap

sudo snap install phpstorm --classic

Install Java

sudo apt install default-jre

Start PHP storm with phpstorm


Installing Docker

Setting up Docker so it can be used by logged in user

Met me at SwanseCon? Ahoy!

Hi, I’m Gary, a Developer Evangelist for Twilio who’s based in Swansea. So if you’re using Twilio to power your communications or would like to know what we do, I’m the person for you. I’m local and keen to hang out with your dev teams and show you what we can do to help you engage your customers.

Drop me an email with an intro to and I’ll give you $10 extra credit. I can’t wait to see what you build.

Nerves Before Speaking

My good friend and fellow PHPUK keynoter, Jenny Wong posted an interesting post on Stage Fright,¬†in which she explains how she minimises the stagefright before going on stage for a keynote talk. It’s fascinating because as those who know me will attest, I get terrible nervousness before going on stage, particularly with keynote talks and even though I’ve given several of them now.

One of the reasons that I found it so interesting is because Jenny’s experiences differ from mine in some regards, but hold up in others. In particular, I worry about the content of a talk the day before I deliver it, or if it’s a closing keynote then the morning of the session. During my recent closing keynote at PHPUK, I was probably the most worried I’d ever been about the talk and felt underprepared, even though I had put my usual 40-or-so hours of prep time and practice into creating the talk.

Interestingly, PHPUK will be the first time I’ve given this talk, and I haven’t had it seen by anyone — today’s audience will be the first. The concept has been vetted heavily by friends who I trust, so I’m happy the idea is solid. I love Jenny’s advice about setting a run-through date with friends to force you to create the content ahead of time. This has rarely been a problem for me which in itself is interesting. I can be as procrastinating as anyone, but I generally get my talk content prepared well ahead of time as I know what it feels like to be on stage and bomb. My rehearsals will have been in my front room with the TV connected as the projector, delivered to nobody, just to make sure I have the pace and cadence of the talk right. I feel like it’s important to fill any timeslot you’re given, and this kind of practice makes me feel confident I’ll run to time (even if everything else is a disaster).

The talk was about things I wish I’d known earlier in my developer career and was (loosely) linked with gaming, and my central panic was that the advice I’m giving was too obvious, too fundamental to warrant being told in a keynote slot. Information like “learn to say no” has been really important in my career, but when you’ve heard the advice before, then it may seem worthless. I’m a firm believer that everything is obvious when you know it, but how simple can you be without being too simple?

My other massive concern is that the gaming references would alienate parts of the audience and make the talk exclusionary. I try not to make jokes just for people who are “in” on them because that makes the rest of the audience feel left out. For speakers who’ve been around a bit, this can be difficult as anything I say can be construed as an “in joke” by friends who will laugh leaving everyone else confused.

ASIDE: I hate this and try hard to make any jokes that most of the audience will get, but it’s impossible – even a word or two I didn’t think about can cause only my friends to laugh which is terrible. I remember being at talks before I was a speaker baffled at what people were laughing at and feeling completely disconnected from the rest of the room. It’s horrible.

To combat my weird feeling of underpreparedness, I spent the morning of the talk in my room going over my slides and practising out loud. Rehearsing out loud is the super-power that allows me to combat fear, although I don’t want to practise too much as my talk can lose the story-telling spontaneous edge that I enjoy so much. In general I don’t practice the morning of my speech, but in this case, I couldn’t shake the feeling, so I decided to break the rules and do it.

I then did my usual ritual of eating very early, in this case for a 5pm slot I ate at 12pm and then only a small meal, and getting to the venue well in time. Typically I’ll be at the conference all day on the day of my talk, although I’ll find somewhere to hide out when I need to be alone. I also like to try and see any other keynotes that come before mine so I can reference them in my talk, it’s excellent for conference organisers if the themes flow (although as mentioned in the particular case I felt practising was more critical).

Once at the venue, there’s a few things I need to do to combat nerves. I need somewhere to hide. In the case of conferences that have the speaker hotel attached, this isn’t a problem as I can quickly get to my room, but where the hotel is a distance away, it can be a problem. I try and find either the conference organised quiet room (or speaker green room in some cases), or some off-the-beaten-track part of the venue where nobody goes. This is important for me to have some quiet time when I need it, and to run through slides if I want to.

The second thing I find it a toilet. It’s not nice to talk about bowel movements, but very often when I’m nervous, it has a physical impact on my digestive system. Sometimes my bowels feel the need to empty, and quickly. Experience has taught me that having a lavatory close to hand makes me feel more comfortable — again if I’m speaking at the speaker’s hotel then no problem, but if not I try to find an out-of-the-way bathroom that is little used so there won’t be a queue. You can usually find these at any venue by wandering away from the conference or even asking at reception. I’ll stop talking shit now.

Once I get into the hour before the talk, all bets are off. I usually go for a walk with my headphone on, but I won’t listen to music. I tried this after seeing it work very well for people like Anthony Ferrara but it ended up making me feel even more manic and frantic which if you’ve seen me speak isn’t a good thing. I need to calm down not psych up! I will listen to an audiobook or podcasts and go for a reasonably long walk away from the venue, usually about 45 minutes making sure to get back in plenty of time for the tech check. This is personal to me, I feel the exercise and attempt to switch off really help me to keep calm (toilet issues notwithstanding). Before heading to the tech check, it’s one final visit to the toilet and then head off to the room.

ASIDE: People often ask if I have a beer before speaking, and the answer is always no. I’ve never had a drink a talk and I never would because beer tends to make me need to pee, and I can’t think of anything worse than being on stage needing to pee. When you’ve got something working, I think it’s foolish to risk breaking it.

The tech check can be stressful in itself, but having done so many now, I don’t feel so bad. I have a copy of my slides in PDF and Keynote format on a pen drive that doubles as my clicker, so if all else fails I’m covered, but I don’t have as many slide decks as Jenny does. I think Jenny’s advice is golden if you’re just starting out and want to take as much stress as possible out of the day, but for me, I’m comfortable that I can fix any problems in-situ. Experience has taught me that my high-contrast slide theme works well on most projectors as that was a priority when I got it designed. I have the feeling that now I’ve said that this will bite me in the bum sometime soon, but I generally don’t feel nerves about getting my slides and mic setup.

And away we go, baring technical problems there’s not much more you can do. To echo Jenny’s point, nobody in the room wants you to fail, and it’s vital to settle everyone down (including yourself) as quickly as possible. I read a LOT of autobiographies by stand up comedians, and most of them mention that getting the audience relaxed as soon as possible makes life easier for everyone. It’s slightly different in the stand-up world, but the premise is that everyone wants you to do well but they’re nervous you’ll be poor. Reassuring them with a good joke right off the bat settles everyone and stops people being scared for you — they can just enjoy the show. This translates to me trying to be calm and self-confident as soon as I can so the audience knows they are in safe hands and can relax. Usually, this is in the form of either a scripted laugh (a funny picture of myself usually works well) or some observation. In the case of PHPUK I mentioned how much I liked the new round seating setup which seemed to put everyone at ease.

Technical problems can be a nightmare and are usually out of your hands, I don’t know what to say about this as each case is different. I tend to plough on through while making a joke about it if it’s possible but I have no idea what I’d do if the problem meant I couldn’t continue. At PHPUK my slide deck started flickering on the main screen and the comfort monitors (the displays below the stage facing up that show the speaker what’s on the main screen). This was extraordinarily off-putting and pulled me out of the moment a few times. I tried making a joke about it, but even that fell flat which made me feel worse — I have no idea what I could have done differently. In the end, the tech team started pausing my slides on the output and then updating them by hand when I flicked through, which created its own problems as lots of my jokes are timing based on the slide changing. This could have been so much worse, but I have no idea what I could have done differently, it’s something I want to investigate in the upcoming weeks to see if it’s something I can learn and improve on (but I suspect it’s not).

There you have it, a brain dump of my very nervous keynote talk at PHPUK. I hope this helps someone, if you have questions or want to talk about this with me, hit me up on Twitter, I’m always happy to discuss this stuff!

Good luck.

New Opportunities

It’s with equal parts excitement and amazement that I’m making myself available for consulting development or training work from the 1st October 2017.

This does not mean I’m leaving JetBrains!

Luckily for me, I’ve somehow managed to cultivate the unique opportunity to continue with JetBrains as a Developer Advocate for PhpStorm on a part time basis — keeping my role as the face of PhpStorm in the PHP community, speaking at conferences and working on the booth which is a job I love doing.¬† However, when I’m not attending events, I’m now going to be back working for Roave providing consulting, training and mentoring which is also something I’ve missed and love doing.

Please continue to talk to me on Twitter or at conferences with all your PhpStorm stories, troubles and recommendations as this will very much still be part of my job.

If you need consulting services from someone with now very close to 20 years experience in the technology industry, training on all aspects of PHP but particularly Zend Framework, or are interested in hiring me for short to mid-term contract work then please get in touch, my DMs are open on Twitter @GeeH.

This new development is truly going to give me the best of both worlds as I’ll be even more useful as the voice of the PHP community to the fantastic PhpStorm developers when I’m solving the real-world problems that we (the users of PhpStorm) face on a daily basis.

Open Sourcing Mental Illness Handbooks

One of the most important objectives for the Open Sourcing Mental Illness project is to help people get the support they need for mental health challenges in the workplace. I’m so proud that we’ve had our Mental Health in Tech guidelines available as ebooks from our website for the last six months, but today, we’ve released these handbooks on the Leanpub platform.

Continue reading

PHP Versions

I can clearly remember when I was a Ghost Programmer – clocking in and out of 9 to 5 jobs, and switching off when I got home. Like most jobbing coders, I used to have ideas that I’d play around with when I knocked off the job, some half-arsed side projects and the odd little job for friends or family, but largely I’d not think about coding on evenings and weekends. There must be thousands and thousands of developers just like this working on PHP projects right now.

Continue reading