Table of Contents in Saaze

9th April 2022

Assume you write a longer blog post with multiple headings. Then you probably want to have a table of contents at the head of your text, so readers can easily navigate and have a better overview of the content. This blog contains mostly shorter posts, so usually there is no need for a table of…

Adding Categories to Saaze

5th April 2022

This blog runs using Simplified Saaze. Almost every blog post contains categories and tags. Although previously these categories and tags were not linked together in any way. I.e., there is no way to find all blog post relating to one specific category. Task at hand: Add categories and tags to…

Accelerating Page Load Times by Reducing Requests, Part #2

26th March 2022

In continuation of Accelerating Page Load Times by Reducing Requests from last year, I tried to reduce the number of request even further. This time I stumbled on this opportunity by accident. When I changed my favicon.ico file, I read at favicon.cc that you can embed your favicon.ico between the…

PHPMagazin On Simplified Saaze

21st March 2022

The German magazine PHPMagazin has an article written by me on Static Site Generators, PHP-FFI, PHP-PECL, and on XHProf. The article is in German. Simplified Saaze is the static site generator used by this blog. Its description is here: Simplified Saaze. The editorial manager of the magazine,…

Testing COBOLworx gcc-cobol

20th March 2022

In an article An open-source COBOL contender emerges a "real" compiler for COBOL was announced. This newly announced compiler is a frontend to gcc. This contrasts with GnuCOBOL, which translates COBOL to C and then calls gcc. As the performance of GnuCOBOL is a little bit disappointing,…

ReverseProxy and UrlToolkit in Hiawatha

6th March 2022

This blog uses the Hiawatha web-server. Hiawatha is a lightweight web-server with special focus on security. Hiawatha offers, among other features, reverse proxy functionality and URL rewriting, see man page. Reverse proxy is configured by keyword ReverseProxy. Multiple reverse proxies may be…

Mass Lowercasing of File Names

7th February 2022

Task at hand: lowercase ca. half a million file names. The obvious solution would be to use the mv command together with tr to accomplish the job: for i in A B C ...; do mv $i `echo $i | tr '[A-Z]' '[a-z]'`; done Each file would spawn two processes: one for the tr and one for the mv itself. The…

IMS/DC MFS To PHP

23rd January 2022

Task at hand: Convert IMS/DC MFS to PHP code. This is vaguely similar to the task that the MFS language utility DFSUPAA0 does. IMS/DC is a mainframe based transaction manager. MFS is an Assembler like description of the message format used in IMS/DC. Parse MFS using Perl: Screen layout is…

Generate RSS from HTML

17th January 2022

As written in Generate RSS from Markdown extracting RSS from Markdown with frontmatter is simple. Now I took a slightly different approach and generate RSS from the HTML files directly. For this blog I still want an RSS feed. Simplified Saaze does not provide this functionality. Simplified Saaze as…

Statistics of this Blog in 2021

11th January 2022

End of May 2021 I moved my blog from WordPress to self hosted, see Moved Blog To eklausmeier.goip.de. Now after roughly half a year I regained ca. half of the visitors I had on WordPress. Contrary to some murky SEO advice Google does not honor "noindex". I have below HTML code in all my…

HashOver Comment System with Hiawatha

4th January 2022

When you have a blog you might want to engage with your readers by allowing them to comment on your posts. WordPress allows this out of the box. But when using a static site generator then having a commenting system is a bit more difficult. Many have resorted to Disqus. But Disqus has a number of…

Internet Adoption

31st December 2021

Internet adoption rates are phenomenal. I already mentioned in India is now the third largest Smartphone market in the world - Android Authority the massive growth in India. Above graphs are from Our World in Data: Technology Adoption written by Hannah Ritchie and Max Roser.

URL Count Statistics

14th December 2021

When I moved away from WordPress to Saaze, see Moved Blog To eklausmeier.goip.de, I first used StatCounter to count how many times my blog posts were visited. Later I added Matomo, or Google Analytics, or Yandex Metrika. It turned out that all these counting mechanism use quite large JavaScript…

Filtering Bots and Crawlers from Access.log

13th December 2021

1. Problem statement. When you run a web-server on your machine many bots and crawlers will visit. When analysing how many "real" visitors you have, you should therefore suppress these entries in your analysis from your log file of the web-server. This blog is served by Hiawatha…

AWStats and Hiawatha

30th November 2021

Hiawatha is a secure and reliable web-server. It is used for this blog. AWStats is a collection of Perl-scripts to analyze log-files from web-servers. By default, AWStats can read Apache log-files. It cannot directly read log-files from Hiawatha. The Hiawatha log-file format is: host, this is the…

Accelerating Page Load Times by Reducing Requests

16th November 2021

In trying to decrease load times of this blog, I noticed that the prism.js library requires quite a number of requests to the unpkg-server. So I tried to combine all these requests into only two. The results are quite impressive. I compared various measurements using tools.pingdom.com. Old…

Performance Comparison Saaze vs. Hugo vs. Zola

13th November 2021

Zola is a static site generator written in Rust. Hugo is a static site generator written in Go. Simplified Saaze, Saaze for short, is written in PHP. Task: Compare run times of Saaze vs. Hugo vs Zola. I didn't find a direct comparison so far. There is a comparison of Eleventy vs. Gatsby vs. Hugo…

Making Static Site Generator 500-Times Faster

12th November 2021

I already described some changes I made to the original Saaze software: Moved Blog To eklausmeier.goip.de Calling MD4C from PHP via FFI Considerations Regarding Simplifications of Saaze Profiling PHP Programs In Making Static Site Generator 30-Times Faster I already described that removing…

Simplified Saaze

31st October 2021

Introduction Installation Directory structure Basic usage 4.1 Static site generator 4.2 Dynamic content generation 4.3 Single file generation 4.4 Specifying an alternate build directory 4.5 Turning extract file generation on 4.6 Draft mode 4.7 Categories and tags Collections and…

Saving Attachments in Outlook via VBA

29th October 2021

Task at hand: You receive daily reports with attachments, which you need to analyze programmatically. Therefore you want those attachments in your filesystem. You need an Outlook macro, which saves all those attachments to a directory. Outlook VBA to the rescue. Below macro processes all e-mails…