Blogging for Three Hundred and Sixty Six Days in a Row

Blogging for Three Hundred and Sixty Six Days in a Row

For three hundred and sixty six days I have written a blog post daily. In some cases I wrote two posts, and scheduled the post to appear the next day. This is when I was driving for thirteen hours, or if I knew that my morning was busy. In the process I have definitely given myself a writing habit. The question I ask myself now is whether to continue, or whether to change the posting frequency.


Nothing to Say


One of the problems with posting daily is that we sometimes have nothing to say. We sit at the computer and try to find inspiration for an hour, or two, or even three. Eventually we write but is there any value in what we wrote? According to the viewer stats there isn’t. It’s a matter of just writing, for the sake of habit, and experience. It also demonstrates that I have the stamina to write every single day, even if some days are more interesting than others.


Reducing the Frequency


I’m thinking about reducing my writing frequency to once every two days, or once per week. If I write once per week then I might be as uninspired when I write daily, but weekly. In effect I’d be lazier, less disciplined, than I am at the moment. I don’t think that reducing the frequency of writing would be productive, because that would be about laziness, rather than striving.


Consistency


Writing daily, despite having nothing to say is about consistency. A toddler falls up to several hundred times in a single day when learning to walk. An adult walks 23,000 steps without even noticing, in a single day, when hiking. Writing daily might generate a lot of crap, but it also trains us to write, to type, to think, to go back and edit. It trains us to put ideas into writing. We learn to write every single day.


More Productive than Social Media


One of the reasons I decided to blog daily, is that I saw that Facebook and Instagram were making money from the time I spent on their sites and I thought “I should invest that time into my own site”. I did. That’s why I now blog daily, and I’ve had the habit for three hundred and sixty six days in a row. I do feel like changing the rules for myself.


Photographs and Video


At the moment I post written blog posts, but now that I have written blog posts for three hundred and sixty six days I could change it up. On some das I could post a video, and on others I could post photographs. The point of a photograph is that I could spend 30 seconds on a blog post, rather than one to three hours per day. I proved that I could write daily for an entire year. Now I can reward myself, by changing the rules.


The Road that Became a River


Two days ago I ran by a road that became a river, and I should have stopped to take photos or video. If I had then I could show just how heavy the rain had been, over a period of hours and days. High winds are forecast overnight. It could be fun to capture the waves crashing on shore. If the temperature dropped then it could be fun to capture the ice formation.


And Finally


With the change in format I hope to spend less time on blogging. I want to continue blogging but I want to give myself to post an image, rather than write. Writing takes time.

Git-FTP and Web Development
|

Git-FTP and Web Development

From the way people write about Github you would believe that everything has to pass through it, for anything to work but after some trial and error I found this to be a misconception.

I found that with GIT-FTP on Github I could upload and download files to a website after each git update. I learned this through following instructions for another workflow. I followed these instructions but because I use disroot rather than github the workflow didn’t work for me. I considered migrating my repository to github but chose not to.

Experimenting with Git-FTP

I spent a lot of time experimenting with Git-FTP, not because it’s complicated to use, but because the instructions I had confused me.

When I experiment with Hugo I have a git repository that tracks the changes for everything but the public file, so when I tried to upload the website after telling it not to use public, I then had to delete tens of thousands of files from the FTP site, twice.

The workflow that is mentioned above works well if you’re on github but I am not so it was nice to try, but not that useful. The more interesting option is to use git-FTP directly with the “public” Hugo build directory.

Git, Git FTP and the Public directory

The quickest, smoothest workflow I found is to track changes within the public folder and upload to the ftp server that way.

  • Git init within the public folder and commit the initial version.

The instructions to Install Git FTP

The simplest way to [install git-ftp] on a mac is with Brew. Within a few seconds you’re ready.

The next step:

  1. git config git-ftp.url “ftp://ftp.example.net:21/public_html”
  2. git config git-ftp.user “ftp-user”
  3. git config git-ftp.password “secr3t”

After this you use git ftp init and it will upload all the files.

List of Commands

With this workflow you don’t need github or any other repository. You make your changes locally, update git, and once that is done “push” the files that have been changed. It takes seconds and a few lines of instructions

The Old Method

The old method, that I have been using for decadess, is to work on a file, save it, and then use filezilla, cyberduck or some other client and upload the changed files. This method requires you to keep track of dates, and ensure that all files, from all locations, are uploaded. By using git-ftp you eliminate the need for github and others, and upload files, straight after updating the git repository. I can see myself using this all the time from now on.

While writing this blog post I did come across this command.

-P, –ask-passwd : Ask for FTP password interactively.

If you use a machine that other people use then this command is a better one to use because I noticed that you can see information in clear text in terminal, which is not good. Anyone that has access to the computer can run check the terminal log and find that sensitive information.

In my case, and for my experimenting the ftp account I created only has access to the blog folder, and no others. In this manner only one folder can be compromised so easily.

The Beauty of This Tool

The beauty of this tool, in my eyes, is that I can work on a website and I can track changes with Git but I don’t need to use github pages, netlify or any other tools. I can create full fledged websites and webpages and update the site by updating the git repo and then git ftp push and within seconds the site that I’m working on is up to date, without being locked in to any other site where I am the product.

I like being self-hosted, and I disliked the idea of dumping a website and domain I have used for decades, to take advantage of a simpler workflow.

And Finally

Plenty of instructions and workflows show the benefit of using their products and their workflows, to lock you in to their system. By trial and error I learned that tools exist to streamline the workflow without github. Too much of the web is built around docker, github and other solutions. The result is that you find plenty of instructions for a technique that will trap you, rather than provide you with independence. My blog post is written to help you enjoy greater freedom.

Using WordPress as a Fediverse Instance
|

Using WordPress as a Fediverse Instance

User profile as seen on Mastodon.social


Over a period of a few days I have turned my WordPress blog into a fediverse instance. The process took some trial and error. In the end it was quit easy and there are three steps.


Step One: Have a WordPress Instance


The first step is to have a WordPress blog/CMS. You can start with an existing website, that you are willing to have on the fediverse, or you can install the WordPress CMS in another director and use that as a dedicated Fediverse CMS.


Step Two


Go the the plugins tab and add the activityPub plugin. Once this is done your blog will work as a fediverse instance. When someone subscribes to your instance via Calckey they will be able to read entire blog posts within Calckey, as if the blog was written natively. They can also comment but this is one way. You will need to check for comments and replies manually.


Step Three


The third step is to install the webfinger plugin for wordpress. This was the most complicated challenge for me, because webfinger expects to find the .well-known directory in the root of the website rather than the directory where the blog may actually be.


If your blog is in the root then you’re fine, your WordPress blog is now a Fediverse instance.


If you’re like me, and webfinger points to the wrong place then I have a simple solution.


Go to the webfinger lookup url and type your username. It will show you a get https line with where it expects to find your json file. Copy this into the URL bar but type the correct path. You will know you wrote it correctly when you get some JSON data. Copy this data and paste it into a file called webfinger.json.


Create a .well-known directory in the web rooot folder of your site. Add the webfinger.json file to this directory. Go back to the webfinger lookup page and check that your username@domain works correctly. If it returns the right json you’re in. Your blog is now a Fediverse instance


The Complicated Alternative


The advice I give for step three is the advice I would have liked to receive. People suggested that I change the htaccess file, which I tried to do, but without success. If you do attempt to change the htaccess file keep an unmodified backup in case you break something. I wouldn’t recommend experimenting with the htaccess file. The webfinger.json solution is simple and intuitive.


Why Does This Matter


The pre-requisites for installing Mastodon instances require permissions that we might not have on the host we are currently using. This limits what we are able to do. By having WordPress and the ActivityPub plugin and Webfinger we are able to bypass several barriers and get a fediverse instance running within minutes and in theory anyone can do it. Anyone that is familiar with WordPress.


And Finally


On Mastodon blog posts are shown as links to articles. People still have to visit the blog. If and when people comment on the mastodon toot those comments are added to the blog post comments, and vice versa.


With Calckey the blog posts that you write in WordPress display natively in Calckey. It does remove formatting however, so that’s something to work on. People that comment on the calckey post will be visible in the blog posts and vice versa. It’s native integration. It works well.


Now, when we write blog posts, people can see them directly in the fediverse, without having to browse away, especially with Calckey integration. In theory your blog post is not a blog post. It’s a note. This seamless integration should bring new life into blog posts. What I find especially amusing is that my blog already has 2100+ posts, in theory. In practice it has many more. People do not see legacy posts. They only see posts from the moment they start following on Mastodon or Calckey.

Transitioning from WordPress to Hugo

Transitioning from WordPress to Hugo

Transitioning from WordPress to Hugo is tempting because I don’t need an entire CMS for what I’m doing. What I need is a centralised system that checks for tags, titles and the theme, and updates the navigation as I add new pages. You don’t need a CMS for that.


The Good Old Days


If you go through the meta data for many of my static pages you will see that they were created with dreamweaver, frontpage 2000 and other solutions. The aim of these was to create an application that would prepare the html and navigation for pages, so we could concentrate on content creation. This was before the age of the CMS.


A short Learning Curve


If you want to create a simple blog, without changing much the learning curve for WordPress and Hugo is short, compared to what is required for Laravel, Angular and other solutions. You create content and there are tools that will take care of almost everything else.


With Hugo and WordPress you can, theoretically, start creating content and sharing it within minutes, or even seconds, depending on how many times you have set things up before.


HTML or Markdown


With Hugo if you want to create a simple page you can use markdown and save a lot of time and effort. You focus on headings, images, lists and hyperlinks. If you want to have more flexibility you can generate an HTML page, and with this you can do anything you want, and have the experience, to do.


  • hugo new blogs/big-timber.html


  • hugo new posts/hugo-and-wordpress.md


A Huge Mess


I need to find a solution to a problem. I have a blog with thousands of articles so I have thousands of markdown pages in a single directory. I considered using the creation date with year-m-d-article-title.md but if I do this then Hugo will use that as the headline for new blog posts. I would need to edit the Title of new posts, to remove the date information. For the public folder, once the blog is exported the files are tidy.


Thousands of Files and Directories


Hugo likes to create a folder and file for every single page. The result is that every page has its own folder. That’s fine, when everything is working well, but chaotic every time you make changes. At the moment of writing every change generates 6000 files and folders. That’s 10-20 seconds per export, and this doesn’t include the upload time.


Minor Changes With A Big Cost


When you’re using a CMS like wordpress changing a theme takes seconds. You find a theme, apply it, and a few seconds later you’re ready to role. With Hugo if you change the theme you need to regenerate and then reupload the website in its entirety. Small changes become big changes. Having said this, with a static website, managed by hand, rather than Hugo, this would take hours, rather than seconds.


Very Fast, Flexible


I see that Hugo is fast and flexible. It provides the organisational features of a CMS with the flexibility of HTML pages, when that is desired. This makes it easy to circumvent the limitations that are imposed by markdown, for those that want to embed videos or other features into a specific web page or blog post.


And Finally


Hugo requires no back end. Anywhere that you can upload html, can display a Hugo website, or individual pages. You have the ability to tell Hugo where the files will be on a server, so that links are built to play nicely. Both the static part of my website, and the blog may soon run via Hugo.

Converting This Blog To Hugo
|

Converting This Blog To Hugo

On Saturday I converted my blog from WordPress to Hugo as an experiment and it went quite well. I downloaded the xml file and then I converted that xml with blog2md to go from xml to md pages. A page was created for every single blog post. This took a while. I now have my blog both as static pages, and as a wordpress blog.


Two challenges


There are two challenges. The first is that Hugo has to generate over 5000 pages each time I generate the site, or at least it has to check 5000 pages per change. That’s several minutes of work, every time I tell Hugo to build the site. The next concern is that if I make a change I don’t know whether I need to re-generate the entire site to reflect that change or whether it will just generate one page. I can run tests using Git Version control to see what’s happening.


Is Hugo or WordPress Lighter


I don’t know whether Hugo is heavier, because of every individual file, or whether WordPress is heavier, due to all the functionality that I barely ever use. WordPress often feels bloated and slow, especially in the admin console. It would be nice to play either with markdown, as I’m doing for this post, or html, as I could do, if I want more flexibility


Images Still Load


One of the surprises I came acrosss is that images still load, whether I am in the blog directory I created for testing purposes on the website, or within the wordpress blog folder, as I did by mistake. It’s pretty easy to make the change, as long as you keep the assets where they’re expected. I might consider deleting most of the wordpress install except for the media assets. That will be decided lateri.


What I Like About Hugo


What I like about Hugo is that the blog is generated and links between pages are taken care of automatically. As long as the tags and categories are set ahead of time, the generator will take care of the rest. As I browsed through the blog generated by Hugo I liked the look and feel. That’s before I spend time tweaking the theme and trying to add more.


An Alternative Approach


The blog I use now has been around for 20 years or so. This means that if I make a big change, like migrate from WordPress to Hugo I will kill all the hyperlinks and hierarchy and it will take time for search engines and links to be written to make the new version visible. Having said this the traffic to the site is low and there is a chance that the change will not be noticed. It’s by updating and linking to pages that I will make the entire site more visible.


And Finally


I have written the last two blog posts using VIM and I like the interface. It’s limited in functionality, because I haven’t spent enough time playing with VIM but it feels fast, and effective as a blogging tool. If I use Day One it takes time to load, I theoretically need to pay a subscription and then I need to cut and paste the content from there, to the blog. With this I could press esc, :wq, save, and write hugo and it will upload automatically. My reason for not doing that, for now, is that I don’t want to risk sharing the configuration for connecting to the server. Time will decide.

From Instagram Archive to PHP Website

From Instagram Archive to PHP Website

Three years ago I stopped using Instagram because I was tired of seeing influencers and adverts rather than by the people I chose to follow. The cherry on the cake, that pushed me to dump Instagram is when they changed the location of the Post button from the left corner to the top right and changed the default from photo to story.


For ten years or more I used instagram and shared photos, and I enjoyed capturing at least an image or two every single day. It’s because Instagram was bought by Facebook that I fell out of love with the site and decided not to use it anymore. The community had been lost, so what good was there in sticking around? 


Instagram to WordPress


In 2020 I played around for two days and I developed a work flow to take my posts json file, and convert it to CSV before importing it to wordpress via a plugin. It worked well, but I never used it. 


The Laravel Concept


For a short time I was thinking of trying to get Laravel to drive the Instagram clone but soon changed my mind, due to the amount of learning it would required. I settled on a simpler, yet practical solution. The PHP Array. I had used PHP arrays for one or two sections of my page, as well as individual pages. It’s simple and intuitive to use, with few complications to debug. 


JSON to PHP array


Recently I saw discussions about how pixelfed made it possible to import the instagram json file to pixelfed and that’s what encouraged me to play with the Instagram json file. This time I tried a different tact. 


The first step was to download the most recent json file and save it locally. Once this was done I converted the json file 


I asked chatGPT for help. I asked it how to convert from json to php array. The answer summarised is “$json = json_encode($array);”


I then asked how I would generate a file:


$json = json_encode($array);

$file = ‘data.json’;

file_put_contents($file, $json);


After this It was a matter of trial and error to read the php array data. My idea was to create a loop that would cycle through each post individually and display the image, as well as the related data. Usually I would achieve this by trial and error, as I have done, in the past, with other projects. 


chatGPT Helps to Access Array Data


By myself I was able to retrieve the URI and display it. I struggled with the timestamp and exif data so I asked chatGPT to help me. It gave me examples of how to get the URI, the iso info, and the title. The arrays contain more info but I extrapolated that from the example chatGPT had provided me with. 


At this point the page was ready to experiment with displaying the content. At first it was just text. I then added the required html to display the image properly and to size it correctly. When that was working properly it was time to add pagination. 


In the past I would have spent time Googling for examples of pagination and selecting one that worked well but this time I asked chatGPT for help. 


It helped me with pagination, except that the pagination was from page one to one thousand six hundred or more. That’s excellent, if you want that, but I didn’t. I wanted the pagination to be paginated, so I asked chat GPT to help with this too. It did. I then noticed that I needed back and forth, so I asked chatGPT for help yet again. 


EXIF volatility


When the site was loading individual images and the relevant information I flicked through the images and noticed that some did not have exif data so I asked chatGPT to write an if else loop that would display exif info if it was available, and ignore it if it wasn’t. This worked well. 


Time Taken


chatGPT is a fantastic tool, when you know what you want, and you understand how to get it to work, but you’re not 100 percent on the code aspect. I had the basic functionality of the json to PHP site functional within an hour to an hour and a half. I then spent hours tidying things up, adding a little functionality here and there. With chatGPT if you know what you want to do but you’re not certain of how to do it, then it shines. 


During this process I asked a question, it gave an answer, when I saw the answer I tweaked my question, until the result was what I wanted. 


Adding CSS


When I was happy with how the site was behaving I changed from displaying three images, to five and then I added styling. For styling you can copy and paste from old projects, or various sources, or you can ask chatGPT to give you a black background with white text and white borders and it will provide you with the code. Within seconds your theme is ready. 


And Finally


I am comfortable with PHP. I have been redesigning my website to run off of PHP rather than html or a CMS and it works well. chatGPT didn’t provide me with the concept or direction. I did that. I thought of the steps and workflow, and got chatGPT to provide me with reminders of how to do things. It’s because I knew what I wanted to do, that I achieved my goal within a short amount of time. This is really a post about how I used prompt engineering to get chatGPT to help me achieve the goal I wanted to reach, within minutes, rather than hours, or days. 


i went from having a big, clunky wordpress blog, to a few lines of php, to do the same thing. I can add functionality with time. For now it shows my instagram photos efficiently.


The Result

A Desire to Dump WordPress

A Desire to Dump WordPress

In theory WordPress is a fantastic tool to write a blog, without needing to learn to code. In practice I am tired of WordPress and I have been tired of WordPress ever since they started to use blocks, and ever since I noticed that it uses React. 


React and Meta


I know that PHP was developed by Facebook, and that we use it all the time, but I also know that React was developed by Facebook as it was morphing into Meta, the destroyer of the independent web. Instagram and Whatsapp were destroyed by Facebook, as the monopolist took over those accounts. 


Blocks and ClassicPress


I am not alone to feel this way. I see that there is the ClassicPress community. I tried ClassicPress and it works, but it feels like time could be better spent with a different project, that diverges, and has a more concrete direction than “We don’t like blocks”. I am oversimplifying. I realise it’s more than that. 


Hugo


After playing with Hugo for a week or two I think that this would be a very nice solution. I don’t need comments, and I don’t need a complicated backend for the type of blogging I do. I believe that Hugo would easily fill the gap left behind by WordPress. 


Dormant WordPress


If and when I do make this change I won’t convert my WordPress blog to Hugo. I would simply create a new directory and write blog posts that would go there. I am still not certain of my strategy. For now the goal is to have my static website running Hugo cleanly, before then adding the blogging section. Within the next week I should be ready to make the leap. 


And Finally


Before WordPress I tried plenty of different content management tools and services, as can be seen in the wayback machine.  I am migrating, primarily because I want to try something new. I want to learn how to use a new tool and expand my skills, rather than have them plateau. The reason for the switch can be described in a single word. Curiousity. I am curious to see how I can use this “new” tool, to blog, with a different workflow. 

Playing With Pelican – A Static Blog Website

Playing With Pelican – A Static Blog Website

When looking at Codeberg as a European alternative to github I came across mentions of Pelican, a static blog generator. Yesterday I spent several hours setting it up and playing. Whilst playing with it I saw some opportunities. 


By default Pelican is designed to have one category per blog post. For small websites this is fine. It encourages people to focus on three to five topics, and ensure that each topic is clearly visible in the nav bar at the top of the page. 


When I imported two different wordpress blogs I had success is importing the blog posts, but a failure when it came to the nav bar. 


How Does Pelican Work


Pelican can use html, reStructuredText or markdown. It wants to know the date, tags, category, slug, authors, summary and more for each page. Once a page has this information, as well as some content you type “pelican content” and it will generate the static website for you. You can then test the site with pelican listen and check that the website is displaying and working as desired. 


Categories


If I wrote a blog post about hiking in Vaud, Switzerland I would have that blog in “hiking”, “Switzerland” and “Vaud”. Pelican combined the three categories and created a nav page. The result is that I had a bloated nav bar. 


When I enquired about parsing the categories I was told that Pelican wanted to have one category per page, intentionally. They also told me that a plugin allows you to create more categories.  This plugin is quick and easy to install and implement. 


More Categories


With More Categories you can add several categories per blog post, but you can also add a hierarchy. If you write a post about hiking in Vaud, Switzerland, you can have hiking, vaud, switzerland, as a flat hierarchy. You can also have “sports/hiking” and “Switzerland/Vaud” as subcategories. This opens up the possibility of creating a nuanced static website. 


Importing a Website


You can import content from another source by using pelican import. You can choose from Blogger, Wordpress etc. I experimented with importing from Wordpress and it  worked well, except for the issues I mentioned earlier. 


Streamlining an HTML Site


My website is split into three parts


The legacy HTML section


• the main blog


the photo blog


After the two tests I ran yesterday I came to the conclusion that, for now, I will keep using wordpress for the blogs. The reason I think Pelican is interesting for me is that it can read html and the legacy part of my website is html. The challenge with legacy code is keeping the navigation and other parts up to date each time you make small changes. With Pelican I hope to delegate navigation creation. By ensuring that each page has the correct meta data in the header I can then get Pelican to regenerate the website with a navigation that is easier to keep up to date. 


Measuring Success


If I am successful then I will have the website imported into Pelican and I will have a geography, environmental systems, Ancient Rome, and other sections and one or two sections will have themes that are specific to them. 


List of other Python Static Website Generators

One Hundred and Eighty Two Days of Blogging in a Row

One Hundred and Eighty Two Days of Blogging in a Row

With the decline in the value of social media so the value of blogging has come back up. By blogging, rather than using social media, for at least an hour or two I am forcing myself to think, and to elaborate on ideas that would otherwise go without conclusion. Having a thought that is shared in 140 characters is easy. Having a thought that is three hundred words long is not. 


Although three hundred words doesn’t sound like much, and takes a few seconds to skim through it can take an hour or two to write. Today I wrote about chatGPT and why I didn’t like this move, but decided to leave that post as a draft, rather than publish it. I want blog posts to be positive, when possible. 


The issue with social media, in recent years, is that it has forgotten that it should be about individuals and communities, rather than advertisers. If individuals and communities are scuppered by the social media giants then it makes sense to return to the metaphorical village of personal blogs and websites. 


Now that social media has become a waste of time I enjoy investing that time in blogging. For an hour or two I spend time thinking, elaborating ideas and then writing a blog post. Most of these posts are never read. Blogging isn’t about being seen or read. I think blogging is akin to mindfulness or meditation. 


I use meditate in the French sense of the word, deep thinking, or to prepare something after a lot of thought. Blogging is the result of reflection, although it might not feel like it, when read. Blogging is a break from the world, to elaborate an idea, before posting it and forgetting about it. 


Most blog posts are not read. I’m developing a writing habit, and my writing skills, in a public place that no one visits.  

Updating Old HTML Webpages
|

Updating Old HTML Webpages

Most websites are simple. They have five to ten pages at most but usually a single page is enough. Most pages are about one specific thing, whether it’s a CV inspired page to find new clients or a simple page with a few products. Most are usually about a single topic. 


This makes website maintenance and design simple, because one theme fits every page. My website is different. It has articles about the Romans, Geography, Environmental Studies, old student newspaper articles, Media studies pages and more. In effect it is several websites rolled into one. 


The challenge with updating this website is in the size of the website. Since 1996 I have been adding pages, until about 2003 when I switched to wordpress- The website still has a thousand or more individual pages. Every time I update I have to update hundreds of pages. 


Recently I converted the surfing the World Wide Waves section to PHP, including one php page where I put the articles into arrays, and individual pages that load the title, content, navigation and more. The Surfing the World Wide Waves session is now a simple to edit set of PHP pages, rather than 50 individual pages. I can edit the navigation in a single place, rather than for each article. 


For the sake of consolidating my knowledge I was watching a learning path about HT and I saw that one challenge was to take an old HTML page, and improve it, to be a semantically correct web page. This is a process that I have done several hundred times over the years. 


I created style sheets, one for the Romans section, another for the Surfing The World Wide Waves Section and one or two other CSS files, where one CSS file is used by multiple pages. It helps to make the website uniform. 


Removing Tables and Inline formatting


Front Page 2000 and other website editor software added a lot of code, inline, which, today is not needed. Part of the process of going through the old pages is to strip out old code and replace it with modern code. I replace tables with divs, strong, and other tags with headers and more. I make it so that the website uses less code. 


Old pages sometimes have the font, font size, strong and other tags for each p tag. That’s a lot of code, for a page where CSS does the same thing, just once per tag, header etc. 


A Quick Tip


If and when you’re working on an old page you may find and other tags. In VS Code you can search and find and use find and replace to review every individual use individually and it automatically moves on to the next instance. 


I converted some long blocks of text from html to php within an echo tag and I had to escape a lot of ‘. I did this by selecting “‘“ and using find and replace with “\’” to go through every occurrence individually before moving it to an echo tag. I saved time and effort. 


List Items


If you’re working on a list of items you often have to write the same code for each list item and this takes time. With VS Code you can option select the front to each individual item and type

  • just once. With the closing tag you do the same, except that it will auto-complete the tag so that’s even easier than expected. This saves time. 


    Re-working an entire website is slow and repetitive but that repetition is good for two reasons. The first is that it gives me time to think about what I am doing, and to understand why I am doing it. The second is to develop work flows that increase efficiency. 


    I read, assess, clean up and then re-format individual pages so that they’re template friendly. My Surfing the World Wide Waves section is now like a blog, where I have the bare bones code on each page, and the content in a centralised place. If I took one more step then it would be a one page website. As I gain experience I can take that last step. 


    I am now focused on putting what I have learned to practice. I am consolidating what I have learned and finding solutions to practical challenges I encounter while working on my website.