Jan-Lukas Else 08 Apr 2020 13:27

I think I have never written so many emails during my entire studies as in the last few weeks. But hey, I like to write emails and I’m really glad that my studies are continuing despite Corona (and therefore without any attendance events). Especially the flexibility that I can schedule most things …

Interesting… we’re having most classes via Zoom. Some via Discord and some are just pre-recorded videos to check out.

Spacedodo42 08 Apr 2020 11:58

You definitely know how to shade well, so if you want to move forwards, a tip I have is to try to use more irregular shapes! Maybe a part of the house is chipped a little, or a brick is a little broken? Either way, nice work!

@neptzoo thank you so much! I will work on improving and getting to more irregular figures. I really want to do so but not much confident. Need to try it out.

Jan-Lukas Else 25 Mar 2020 13:45

I just had to share a picture of my workplace in the company internal wiki. That’s why I share the same picture again on my blog, so everyone can see how my desk looks like. My dream workplace would look like the one from David Heinemeir Hansson, but unfortunately the reality only looks like …

So… I’m in my hometown now and not in Lisbon. While I’m here, I don’t usually work on my bedroom where I have my own desk but on the living room desk so this is definately going to be interesting:

My Desk

Jan-Lukas Else 23 Mar 2020 13:46

I like to look at nice photos. And if the photographer publishes them on his own site (in IndieWeb style), I like it even more. I am looking forward to see more photos in your series “#LifeThroughLenses", Henrique! 😍👍

Thank you very much! I’m glad you liked them. I prefer to do this type of posts instead of having a photos page like the one I had before. I felt that I needed to follow some style and that I had a limit of pictures. This way I can publish as many as I want, which is nice. However, I’ll always try not to put more than 4/5 on one post.

Jan-Lukas Else 06 Mar 2020 10:58

I use BunnyCDN as storage for my Micropub media endpoint, where I upload all the photos and other media files I publish on my blog. When I upload a new photo the media endpoint first uploads the original file with the name of it’s SHA-256 hash value (so when I upload the same file multiple times, it …

That’s a great way to put it. Thanks for sharing how you’re doing it. I’m using the HTML picture element to serve pictures in different formats and sizes. Right now, besides the original, Hugo’s generating two more that are compressed and resized.

With the new Photos page, I want to create a gallery view so I would also need to have a thumbnail… And this complexity of generating all this different kind of pictures is what’s stopping me now to do it the way you’re doing. I’d certainly also want to have WebP versions of them. I just don’t because Hugo does not support converting to WebP yet.

This is definitely not impossible, it’s doable. But is it the best option? What if I want to suddenly change the sizes in the gallery? I’ll need to regenerate everything… Maybe thinking too far ahead.

Jamie Tanna 12 Jan 2020 18:21

Since I set up Webmentions in January 2018 using, I've been starting to receive more interactions with my site across the social web.However, up until today, the only way I'd be able to see what Webmentions I'd received was to go and actively check. I'd, many times a day, open …

That’s a lovely idea. I’m personally using Telegram’s Bot API which is quite powerful!

Jan-Lukas Else 26 Feb 2020 22:17

Could you share more information or code about how you transform your knowledge base notes into Hugo pages? I tried creating a wiki or knowledge base on my website too, but somehow I still miss a good workflow to make more use of it. And do you create all notes directly in English or do you …

Quickly relying to your last question: the “things I have to import” is because they’re in Portuguese and I wanna translate them. However, this and last semester, most of the material teachers give us is in English (and then the exam is usually in Portuguese which doesn’t make much sense but nevermind). I’ll share more about the entire workflow soon. The best thing is: I don’t do anything basically besides writing the notes :)

Jan-Lukas Else 24 Feb 2020 08:49

I left Twitter one month ago and didn’t miss it a single time. Reading stories about “Brand Blockers” (Medium paywall) just gives me the feeling that this was the right decision.Regarding the “Brand Blockers”: Instead of trying to block hundreds of thousands brands, maybe just block Twitter? Twitter …

I’ve actually thought about doing this multiple times. Not Twitter actually, but Facebook for now. The only thing that stops me is some university groups that we only have on Facebook that are useful sometimes. However, I already uninstalled it from my phone. Sometimes I wanna show someone something and then I think “I don’t have FB installed”, but it doesn’t matter anyway. Usually it’s not something that important.

Jan-Lukas Else 17 Feb 2020 18:38

Opinions can change over time. And since I often post opinions on my blog, I’ve added a feature to my blog theme that displays a warning message above posts that are over one year old (example).I have been blogging for some time now. There were times when blogging was my escape to deal with …

Completely agree with all you’ve said. “But still, I don’t want to delete most of what I published back then just like that.” this is something I’ve come to learn. My website passed through many phases where I removed a lot of the posts I had there. But now? Now I restored everything.

Henrique Dias 16 Feb 2020 11:06

So I just made a few changes to my website and I hope it didn’t break anything like feeds and such. Here’s a small changelog of the changes:Stopped using Hugo categories for post types (replies, notes, articles, etc) and started using sections, i.e., I know put a note under the /note path. So this …

After publishing the post to which I’m replying to, @jlelse contacted me and I noticed the import directive in Caddy can be used to import files:

import allows you to use configuration from another file or a reusable snippet. It gets replaced with the contents of that file or snippet.

So I just decided to build the redirects file using Hugo itself. First of all, I needed to import a lot of redirects as aliases because I had them in a separate file, but this way it’s much better. After that, I needed to add a new output type to Hugo’s config:

disableAliases: true

    mediaType: text/plain
    baseName: redirects
    isPlainText: true
    notAlternative: true

    - redir

Then, I created a layouts/index.redir.txt file with the following content:

{{- range $p := .Site.Pages -}}
{{ range .Aliases }}
{{  . | printf "%-70s" }}	{{ $p.RelPermalink -}}
{{ end -}}
{{- end -}}

This is mostly what you can see on this commit of the official hugo docs for their netlify redirects. With this, my Hugo website does not build any HTML aliases (disableAliases), but creates a file on the root called redirects.txt which you see here. I can just block the access through Caddy but there’s no reason I should do so. Is there?

On Caddyland, I just added this snipped: {
  root /the/public/path/

  redir 301 {
    import /the/public/path/redirects.txt

And voilá! It works! But now you ask: what if we change the redirects file and we don’t wanna have any downtime? Just configure your Micropub entrypoint or whatever software you’re using on the backend to do a config hot reload by executing the following command:

pkill -USR1 caddy

There it is! 301 redirects working flawlessly!

Jan-Lukas Else 10 Feb 2020 18:36

I promised and people already asked, so here is the first part of the documentation about how I enabled ActivityPub support on my Hugo-based blog:The first step to enable ActivityPub support, was to get Hugo to generate ActivityStreams representations for posts and the ActivityPub actor. I did this …

I was looking at your single template and I was wondering if content_html shouldn’t be content only? According to the spec, there’s no content_html property and the content can contain HTML by default.

Jan-Lukas Else 07 Feb 2020 10:48

I think I finally got ActivityPub support for this blog working. On Mastodon, you can search for @[email protected] and @[email protected] to follow the English and German blog. You should also be able to search for the URL of any post and reply to it. But remember that it’s only possible for the reply to …

I’d love to know more about your implementation. Is it this repo (

Jan-Lukas Else 30 Jan 2020 21:30

I think I’m in some kind of bubble, but most of the people I instant message with use Telegram, because either they are computer science students too or because I convinced (or persuaded) them.My top features (that can convince geeks) are: cross device cloud sync (with clients for almost any …

Uh! That’s pretty awesome. In my case, over 50% of the people I talk every day are not on telegram. I’ve convinced some (including my parents!) with the arguments you mentioned, but others are just to lazy to change or they don’t bother about the eventual benefits even if they complain about things that Telegram would solve when compared to other services: storage usage is my favorite point here. Also, cross-platform syncing and not losing everything just because you changed systems…

Jan-Lukas Else 30 Jan 2020 18:59

Pavel Durov, founder of Telegram, wrote about “why using WhatsApp is dangerous”, citing the attack against Jeff Bezos.Second, there are backdoors. Enforcement agencies are not too happy with encryption, forcing app developers to secretly plant vulnerabilities in their apps. I know that because we’ve …

I really love Telegram and love it! I known a few folks that also prefer Telegram over any other messaging platform. I think that most people would enjoy it more than what they use right now if they tried the app. However, it’s a bit hard to make people start using new services when they’re used to the same steps everyday. Inertia.