Each month I artisanally handcraft a newsletter for TestingConferences.org. In it, I summarize upcoming conferences and workshops, calls for participation and discounts. I put pressure on myself to deliver them consistently since they are sponsored.
Creating the newsletters is difficult. It takes hours to pull out the information, check to make sure it’s up to date and then format it for MailChimp. (That’s why I refer to them as "artisanally handcrafted".)
A month ago I decided to see what parts of that process I could automate. The script wouldn't need to do everything I do, only help do a few things.
This is roughly what I do:
- Open _data/current.yml
- Grab the data for the conferences in the newsletter (e.g. all events in July, August, September)
- Grab the data for any events with a status of CFP
- Grab the data for any events with a status of discounts (Early Bird, Super Early Bird, etc)
- Copy all that data and paste it into many sheets in Visual Studio Code
- Start to remove all the yaml formatting → remove quotes, dashes, keys, and upper case a few words
- Remove the twitter data
- Check each link to make sure the data is up to date. When it isn’t, update it and push the updates forward
- Copy the name, date, location, status and URL and paste into the sections of the newsletter based on month and/or status. Hope Mailchimp doesn’t crash in the process
I haven’t written Ruby for a long time but TestingConferences.org is written in it. This seemed like a good use case for GPT by OpenAI. I'd break down what I need the script to do, GPT would compose it and then I would test and iterate on it.
A Quick Script
I shared a partial current.yml file with ChatGPT to provide context. I asked it to create a ruby script that would iterate through the key:value pairs and delete the rows with twitter data in it. Great, that worked right away and it only took a few minutes.
Next, I want the script to locate the monthly data I need. I asked ChatGPT to update the script so it asks me for a month, finds all events with a matching month and writes them to a separate text file.
In about 30 minutes I was able to create a script that handles items 1, 2, 7 and part of 6. (I have the script removing quotes from the date field. More to do with that going forward.) Each time ChatGPT would spit something out, I would test it. There were small problems but nothing I couldn’t fix.
This is the code it generated (albeit with a few changes for myself):
After this script worked, I wrote a second to handle items 3 and 4. It took roughly an hour to create some tools to help reduce the amount of time I spend on a regular task.
It would have taken a lot longer for me to figure out how to import, decode and re-encode yaml on my own. Even though I had to correct obvious bugs, ChatGPT added a lot of value.
We often get sold a storyline of automation replacing the work of a human. However, this is a good example of the power of AI helping extend capabilities. There’s a lot to be gained by professionals who can leverage these tools effectively.
Did you know TestingConferences.org is an open-source project that anyone can contribute to? If you are looking to get involved in the project, it’s pretty easy to update the list of conferences. This makes it an easy introduction to using git, GitHub and making changes.