Also posting on the Farm and Skiff blogs

I haven’t been posting the Farm write ups here as I moved them to the new Farm blog, which Haze added to the Farm site for me. I’m writing up the topics we talked about from each meet up, and trying to add some more information with one or two ‘highlights’ where I can go into a little more depth. Trying to keep this to something that doesn’t take up too much time so I can make it sustainable is difficult.

Similarly, I have been writing regularly for The Skiff blog. There are lots of in-house events happening at The Skiff, the coworking space in Brighton that I’ve used for many years, and I thought we should be documenting them in some way as it’s easy to lose track of what has and hasn’t happened over the long time it has been running. Also, seeing what is happening in The Skiff may help it attract some more members and stay open, a very good thing in my book.

For the Farm, I have a lot of posts I can make retroactively. I have notes from about 800 of our weekly meetings, I just need to find time to write something to import them into a database so I can export them to a format WordPress can import. Currently I’m thinking of exporting as a CSV and using an import plugin to bring them in, rather than learning the WordPress API as that will take more time and make it less likely I’ll get around to doing it. But currently, client work is taking priority as I’ve got a new site build in progress for G2 Legal, and a bunch of smaller work on too. More about that as I finish parts of it, hopefully.

Farm report – 22nd March 2023

Last week at the digital freelancers networking event I put on every Wednesday, we had a special early start. Last year I surveyed members to see what would help them get more out of the Farm group and a few said they found it difficult to make it as we’re on quite late. Normally we meet 8pm until about 11pm.

I said I’d try some starts at 6pm to see how attendance went. This was the third time I’ve tried that, the first time in 2023. It was by far the best attended, with over a dozen people turning up between 6pm and 8pm, and seventeen people in all across the whole evening.

A lot of the attendees would have come anyway, just later, but we did have a couple of people who couldn’t have made it otherwise. So, it looks like I’ll try to make a 6pm start happen more regularly. It certainly won’t be every week as it depends on my being able to work in Brighton during the day.

Here’s some of what was talked about over the evening:

  • Finding time for personal projects
  • Tiredness post-Covid
  • Strategically placed doilies
  • Show & Tell at The Skiff
  • Choosing a new coworking space / shared office
  • Sussex Azure meet up
  • Saving money on your AWS bill
  • Publishing jobs to various places for recruiters
  • Retrocomputing
  • Motivation
  • Looking for design work
  • AI tools and how they might effect what we do
  • Welcoming people back to a project
  • ChatGPT writing code
  • AI coming for tech jobs?!
  • The terrible state of the economy
  • Is there less work around than usual? – comparing notes
  • “He drew shrimps on it”
  • Buy to Let landlords changes due to tax and interest rate rises
  • Politics and religion
  • Giving up smoking and vaping
  • The prices of Brighton area projects over time
  • Pub management change a comin’
  • What will happen to the Sussex Yeoman pub?

Highlights

Saving money on your AWS bill

Anthony talked about a recent piece of client work where he’d reduced a hosting bill from AWS by over £600 a month. An excellent job for his client! Talking with him and Haze, who had a similar success a few years ago, I got ideas of what to look for in client setups within Amazon Web Services, and how complexity can creep in. This can be accidentally through inexperience or deliberately through fiefdom building. I also heard about areas to watch out for, such as storage which is always virtual and never saved to disk – very risky as if your virtual server is ever rebooted or AWS have an outage, you’ll lose all your data.

Is there less work around than usual? – comparing notes

This conversation took in several members. In the last couple of recessions, there has been a lot of work around for freelancers. This was generally driven by companies making their web departments redundant and wanting more flexible workers, and by a trickle down of work as budgets tightened and clients who would usually use small agencies turned to freelancers instead.

This time, the economy has tightened – although we’re not in an official recession – but there aren’t as many offers of work around as usual. This doesn’t mean there isn’t work out there, but you need to hunt for it more than before. One member who is coming back from a bad case of Covid has recently picked up work thanks to someone else in the Farm, and now the various feelers he’d put out are returning enquiries he can’t fulfil. A year ago, and certainly pre-Covid, those feelers would have got him work much faster than now. I’ve known him get fully booked within a couple of days of starting looking.

It’s getting to desperate times, but it’s good to know there is work around if you put decent time into looking for it.

Tiredness post-Covid

One of our members had a bad case of Covid over Christmas and although they’re able to work again, they are affected by an unusual level of tiredness. They’re coping with this by restricting themselves to working the equivalent of three days a week. Fortunately, they are someone who has been very hardworking and successful in the past and had a financial plan in place that has and is covering themselves.

When you’re freelance, this is the sort of thing that can wipe you out financially – enough bad luck and even in the UK, where our healthcare is covered by our taxes, you can still end up in a terrible position.

For me the lessons are: make sure you have some savings you can draw on in case you get sick, especially now Covid is so prevalent, and make sure you don’t work too hard when you’re first back from a bad illness. Whatever you’ve been suffering from, don’t try to launch straight back into a full calendar after you’ve been badly ill.

You’re a freelancer, you can control your hours. Say you’re available three days a week, or two, or whatever you need. The client doesn’t need to know why, they just need to know you’re tied up at the other times. As you get your strength back, you can increase your hours back to normal.

Strategically placed doilies

I’m not going to properly explain this. It’s to do with a gentle prank one member played on another and I know both will be tickled by it being in the notes when they see them. Like “he drew shrimps on it,” I like to have something bizarre that’s come up during the night and will never make any sense if you weren’t there. The best way of finding out is to come along.

Farm report for 8th March 2023

Every Wednesday I run a networking event for freelancers in the digital industries in Brighton, The Farm. Last week, it was in the Battle of Trafalgar pub, which is conveniently close to the train station and some bus routes, and some parking which is free after 8pm.

I’d been working at The Skiff coworking space during the day, so was already in Brighton rather than coming over after dinner. I started the meet at 7pm, an hour earlier than usual.

These are my overview notes from the evening, I like to note down what’s talked about to use on our adverts the following week.

  • Business Intelligence and Python
  • Sorin’s sole traveller app – Yaatrees
  • School strikes
  • Working from home and coworking
  • Digital nomadism
  • Working with Shopify and themes
  • Spreading out what you do
  • SEO
  • History of the Farm group
  • Dynamite Circle – a group for digital nomads and more
  • The Post Office will pick up parcels from your house – great when running a small ecommerce store
  • Looking for SEO work, especially Ecommerce SEO
  • Have you been freelance too long to work for an employer full time?
  • “I have an allergic reaction to the word Swagger”
  • The Farm comes through for work… again!
  • Getting Brighton residents to go to places to the east and west is hard
  • Eventbrite
  • Office workers are getting less smartly dressed since the lockdowns
  • Convincing clients that what you do is worth it, or finding clients that appreciate what you do
  • Finding work through networking
  • Finding niche work through LinkedIn and Facebook groups
  • Wired Sussex membership

Ten regular members came along, and three new people – Sorin who was talking about his phone app for solo travellers, Julian who was looking to meet people who are interested in digital nomadism, and Leanna (whose name I might be misspelling) who runs an online shop and is looking for Ecommerce SEO work.

Finding work through networking in person and online

I spent a chunk of the evening talking about finding work with Leanna, including the usefulness of in person networking and which events locally might be useful to her. I truly think the Farm would be good for her business if she keeps coming as there are a lot of developers in the group who would be willing to refer SEO work her way when their clients need help. We also talked about the First Friday meet ups and whether they’ve returned since the lockdowns, and whether or not it is worth trying the BNI and Chamber of Commerce groups.

Away from in person networking, I suggested checking for LinkedIn groups covering the areas she’s interested in and maybe Facebook groups. We both have the same reaction to these – something approaching dread – but I know both have been useful to friends in the recent past so I wouldn’t rule them out. Personally, I’d start with LinkedIn as I spend slightly more time there than Facebook, which I barely use, but your mileage may vary. Ecommerce SEO is a big niche, so there are bound to be groups around it where you can be helpful and hopefully pick up some work.

Swagger

“I have an allergic reaction to the word Swagger” was a quip from someone hating the automated documentation system Swagger, I think Haze (in fine form as he’d just landed some new work thanks to another Farm member.)

The idea is you add some extra comments to your code as you are writing it, e.g. you’re writing an API and want documentation so people know how to use it. Once the special comments are in, you have Swagger installed in your system and it can create a mini-website as your documentation for you, as soon as you upload the code.

This is a fantastic idea. When I tried it a couple of years ago, I found I was banging my head against it more than using it. I then tried it with a programmer at a client who had more experience with it and it was a delight. Get your code done, put it on the site, look at the docs and they’ve updated on their own. Magic. Personally, I think Swagger (at least then) needed better docs itself to be really useful.

The person quipping had a problem with it because every API he’s tried where the documentation is in Swagger, the information has been incomplete and the job has been a real problem. Which brings us to the normal problem with documentation: if it is inaccurate (or often, non-existent) then it’s bad, no matter how it’s produced. Swagger isn’t a panacea, you still have to give it good information to work with. It is an easy way to give a little info and get a big result, not magic.

I’m pretty sure Simon Willison has talked about using AI to help write documentation, but I can’t find where at the moment. I’m sure someone is trying to force ChatGPT to do that for them right now.

Fixing a Mailgun API unknown domain error

I’m using the Mailgun API for a couple of clients, making sure we don’t keep sending email to someone who has marked their previous message as spam.

It should be quite simple to use as the docs are very clear, but I kept getting an ‘unknown domain’ error in the returned message when I used the API with one of my client’s domains rather than the sandbox domain the Mailgun provides.

The fix was to use the EU address for the API: api.eu.mailgun.net rather than the standard api.mailgun.net. As my clients are in the UK, they are put into the EU servers, rather than the American ones.

I didn’t find a simple suggestion to do that, so I’m writing this so I find it next time this trips me up.

Fixing minor issues moving code from Railo to Lucee ColdFusion

I have a couple of personal projects at a host that offers the ColdFusion web programming language. I have a soft spot for ColdFusion as its my first programming language and I still find it very easy to put together sites in it as it comes with easy to use functionality the other server side language I use a lot, PHP, only gets through frameworks where they’ve been added by others.

Adobe, current owners of the official ColdFusion engine, charge rather a lot for licenses and that has a knock on effect on the price of hosting. So, I use Viviotech, who offer the open source engines that run the ColdFusion language. The popular one of those was Railo and is now Lucee. Viviotech recently shifted my sites onto Lucee, which I’d been meaning to try as Railo is old and now discontinued.

I hit a couple of problems:

Gotcha 1: No CGI.PATH_INFO

In the project, I redirect all requests through a single routing file. Within that file, I was using CGI.PATH_INFO to get the path of the page being requested. That stopped working, which turns out to be because the host is using Nginx and that doesn’t have PATH_INFO turned on by default. There are ways of making it work, but I didn’t want to be doing support requests to do that and it may not have been accepted for my cheap-as-chips hosting package.

Instead, I make the redirect in the .htaccess file send the path through for me.

My redirect went from this:
RewriteRule ^(.*)$ ./routing.cfm/$1 [L]
To this:
RewriteRule ^(.*)$ /routing.cfm?path=$1 [NC,L,QSA]
Which gives me the URL of the page being requested in URL.path (apart from the / that is normally at the start, which I needed in part of my URL detection, so I added it on.)

I re-wrote my code to use the new URL.path (with added /) instead of CGI.PATH_INFO and that got it working again.

Gotcha 2: Saving files needs permissions set

In one of the sites, I get an image from an API that makes screenshots, and save it locally so I don’t have to use the API over and over. That means getting the image using CFHTTP, then saving it using CFFILE.

That worked, but I couldn’t open the files. The fix was to use MODE=”644″ within CFFILE. This set the file permissions so the image file can be read by the world, and show up on a web page.

<cffile
action = "write"
file = "<path><filename>"
output = "#cfhttp.fileContent#"
mode="644">

Improvement: Can read SSL protected RSS feeds

Railo couldn’t read RSS feeds that were protected by Let’s Encrypt SSL certificates and some of the other cheap/free SSL providers. Lucee can.

That’s great, as I made a very basic proxy (not really worthy of the word) to go request the SSL protected RSS feed through a PHP script I had on some other hosting, which would then send it through without SSL. Not great for security (although these are all public posts it is reading.) So the update to Lucee let me remove the ‘proxy’, which has simplified my code and maintenance.

Now I have my sites working again, I’m looking forward to delving into Lucee some more.