MoreRSS

site iconChristian HeilmannModify

A Principal Program Manager living and working in Berlin, Germany. Author of The Developer Advocacy Handbook.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Christian Heilmann

Using GitHub Pages as a URL shortener / redirection service

2025-08-11 23:49:02

With the fate of Goo.gl in the balance and many URL shortening/redirection services being either expensive or spammy, I wondered if I could find a free/cheap way of achieving the same. So I got myself a short domain (CLXI.org) and looked at using a GitHub repo with pages to redirect URLs. Turns out, this is pretty straight forward.

I’ve put together all the tips here in a repository that you can fork and get started: https://github.com/codepo8/gh-pages-urlshortener
You can see the experience in action here – one of them: https://codepo8.github.io/gh-pages-urlshortener/go/chris10s or https://clxi.org/go/wad

Redirecting on GitHub pages

In order to redirect any pages from a GitHub page, you need to load the right gem and set it up. You do that in your `_config.yml` file:


gems: – jekyll-redirect-from
whitelist: – jekyll-redirect-from
plugins: – jekyll-redirect-from

If you now add a markdown file called `offwego.md` to the page and you can give it this Frontmatter to redirect it:

—-
redirect_to: – https://christianheilmann.com—-

You can try this here: https://clxi.org/offwego .

However, this is a simple server redirect – like you would do on your own server. The user won’t be notified and has no chance to cancel the redirect. If that is what you want, you are done. I wanted to give people more options.

Building an own redirect with preview

Instead of creating lots of markdown files in the root folder I use a /go/ folder to store them. In GitHub pages the best way to do that is to create a collection. I created a folder called `_go` and added it to the `_config.yml` file:


collections:
go:
output: true

Make sure to set the `output` to `true`.

This now allows me to add lots of markdown files there. In order to make them look differently and provide more control over the redirection, I created a template file. To this end, create a `_layouts` folder and add a `redirection.html` in there. The final template has a lot of features we don’t need to cover here, but the main trick was to make the HTTP redirection a variable both in time – the {{page.delay}} bit – and in the URL to send folks to ({{page.goto}}):



That way I can now add markdown files in in the `_go` folder and define both the time and the place to redirect to in the frontmatter:

—-
goto: https://christianheilmann.com
layout: redirect
delay: 10—-

I choose the `redirect` layout, the `goto` URL as mine and a delay of ten seconds.

This is as far as meta redirects get us. I also wanted to add a preview progress bar and a chance to cancel the redirect. One of the annoying bits about a meta redirect is that you can’t cancel it. HTML rules supreme and even removing it with JavaScript won’t make a difference.

Adding a chance to cancel the redirect and other fancy bits

To get more granular control, I use JavaScript instead to redirect. This could break, but it gives the user more options.

The script is no magic and I pipe in the data from the frontmatter:


let countdown = document.getElementById(“countdown”);
let bar = document.getElementById(“progressBar”);
let full = bar.max;
let delay = {{page.delay}};
let interval = setInterval(() => {
delay—;
countdown.textContent = delay;
bar.value = full – delay;
if (delay window.location.href = “{{page.goto}}”;
clearInterval(interval);
}

}, 1000);
document.querySelector(“button”).addEventListener(“click”, () => {
clearInterval(interval);
document.querySelector(“section”).innerHTML = `

Redirect Cancelled


You can close this page now or go to
{{page.goto}} yourself.

`;
});

And that’s that, now you can see the place the link is going to and you can cancel if you want to. Both in dark and light mode. Here’s the progress bar in action:

Delayed redirection with progress bar

Cancelling the redirect (this time showing the light mode):

Cancellation experience

Feel free to fork, add comments and improve on GitHub!

Things not to do as a presenter if you want a great talk recording

2025-08-05 16:25:07

Currently I am editing >600 presentations of the WeAreDevelopers World Congress to release the videos at the end of the month. This is frustrating and painstaking work, as both presenters and moderators didn’t quite follow some simple ideas that make a talk a good recording.

Conference organisers spend a lot of time and money on recording, hosting, transcribing and describing recordings of talks. And for you as a presenter, you do benefit from a great recording of the session. You reach a lot more viewers that way and other conference organisers do watch recordings to pick speakers for their event. You also add longevity to your session and reach people that may have picked a talk that was in parallel to yours.

That’s why it is important to avoid a few things on stage if you want to benefit from all that effort. Here are some I encountered. And, yes, I also made these mistakes many times both as a presenter and as a moderator. But I learned from them.

Don’t hyper-date your presentation

Almost every presenter commented on the time of day or location of the stage. “Thank you all for showing up this early” and similar fillers. This needs to be cut as it doesn’t make any sense in an online recording. It takes away precious time from your presentation and is the job of the stage moderator. Their job is to get the audience excited, ask them to do the things they need to do – for example put on headphones for translation – and set the mood. You have half an hour to deliver a lot of content. Don’t waste it on current, hyper-local events.

Skip the “questions” slide

Unless you have an online form or discussion channel where people can submit questions later that you also answer, do not add a “questions slide”. It is the job of the stage moderator and conference organiser to provide the infrastructure and collection for questions and answers. A much more useful thing is to end with a “thank you” slide with resources and ways to contact you. Say thanks, enjoy the applause and wait for the moderator to tell you if there were questions. If there is no time, point out the ways to contact you if people have questions. Almost every presenter started asking if there is still time for questions whilst showing their thank you slides. This is ruining them. Trust the moderator and conference organisers and wait it out.

Don’t reference “side shows” in the main talk

Your company will most likely have you promote their other sessions at the event, their booth or promotional bits like raffles. These should come after the thank you slide or before the intro/first content bit to make it easier to cut those when they aren’t relevant any longer.
Don’t reference other talks and happenings without a resource
Unless your job is to deliver a closing keynote that wraps up the event with a neat bow, referencing other talks or happenings at the event is only confusing for people who consume your recording later. If you reference other talks – and you should – have a resource link for people to look it up. It is frustrating for viewers to get a reference to something they can’t access.

Don’t do a “is this thing on?”

Almost every presenter fiddles with their presentation computer when the talk time has already started and many do a “can everybody hear me” bit to make it worse. Good conferences give you enough time to set up before your talk and test your slides. Use that time and show up early to ensure your setup works. That the audience can hear you is the job of the stage crew. What would you do if people say “no, we can’t hear you”? If you want to make sure, do it before you start your presentation and add a pause. “Excellent, so we can get started then…”, a two second break to take a sip of water and you’re off to the races…

Limit audience interaction to before and after the presentation

“Hey, how is everybody doing?” is the job of the moderator. “How many of you are Java developers?” is great info, but unless you do change your talk on the fly for the audience it is also pretty useless. Conference organisers allow you to set the intended audience of your talk in the call for papers, so you should know who came.

Audience interaction is great to keep a talk more lively and you should use it. “How many of you have seen this before? Good, that’s most of you” is OK in a recording, if you also say the result of the interaction. “Can anyone tell me what this is? Yes, it is a capybara stroller, well done!” also works when you give the solution. If you just ask questions into the ether and people watching the recording have no idea about the outcome, that is a waste.

Avoid “killing the ramp”

In radio, the ramp is the part of a song that is audio only before the lyrics kick in. As every second in radio means money, DJs often speak over that part to get some more program info in. Studio equipment shows you a countdown for each song when the lyrics start and a common rookie mistake is to talk too long and speak at the same time as the singer. This is called “killing the ramp”. At many events, the conference organisers will have an intro animation with your name and some music. Often presenters are too gung-ho and go on stage and start talking over these. Don’t do that. Enjoy the efforts the event crew put together to show your name in sparkling letters, take a break and then start talking.

Make pauses at obvious editing points

Make sure to have an obvious start and end to the content that you want recorded and distributed and don’t say anything for a few seconds at these breakpoints. This can be tough as you are hyped up on stage and silence seems painful. But it isn’t. Breaks are as much a part of the skill of presenting as speaking is. You can even make it easier by taking a sip of water during these breaks. This would even allow the editor to recognise these as a hint that things are getting started or have finished. In short, you want to avoid any double sound recording. So when people clap, don’t say anything. When there is sound or a video playing, doubly so.

In summary: Trust the process and concentrate on your presentation

Professional conference organisers will have a process and even a stage plan. They will provide you with moderators to rally and organise the audience for you and to run the Q&A. If you want something extra promoted, like a raffle or your booth, ask them to help you with that.
You will have stage technicians and stage managers that help you set up and test your equipment. Help them do their job by showing up for rehearsals and arrive with enough time to spare before your talk to get mic-ed up.
If you interact with these folks and ask them all the questions that worry you about the tech and process side of things you don’t need to waste any precious time of your presentation allotment on things that will have to be edited out afterwards.

Presentations should always work offline – especially in online conferences

2025-07-14 18:05:01

The backstage area at WeAreDevelopers World Congress

We just finished the WeAreDevelopers World Congress 2025 in Berlin, and I am still recovering from the event. It was a fantastic experience, and I am grateful to everyone who attended and made it a success. As the main moderator of the main stage, I had the pleasure of introducing many amazing speakers and topics. I also had a great experience with the stage crew, who did a tremendous job getting all speakers set up, mic-ed up and ready to rock. However, we also had quite a few hiccups and live demos not working and the reason is always the same: presenters assume that there will be a fast and stable connection at events, which is never the case.

I’ve written about this in more detail in the Developer Advocacy Handbook more than a decade ago, but things have not changed much. Sure, events spend an amazing amount of money and effort on connectivity, but with tons of people at the event all connected, official streaming and a whole bunch of influencers being online all the time, any network can have its outages. So here is a piece of advice that helped me tons during my career as a presenter, trainer and moderator: do not rely on connectivity but make sure your presentation material works offline.

Now, almost every presentation tool these days is cloud-first. Google Slides, PowerPoint, millions of “best powerpoint alternatives”, all are available in the browser and on-line. Which is great as it allows for collaboration without having to sync a file of several dozen megabytes. The main slides are OK to depend on a connection, but it gets tricky when you embed video, fonts, demo code and images not as part of the presentation but as an online dependency.

Videos embedded in your slides that are hosted on, for example, YouTube are a terrible idea because:

  • They need to get loaded and rely on a stable stream.
  • Third party media can not autoplay because of security reasons – this means that if you use a clicker in PowerPoint and in Google slides you need to show the controls and click the play button by hand.
  • The embedded video gets loaded from the presentation device, meaning that there is always a delay.
  • If you present at an online conference in a streaming service, this means your connectivity goes down and the quality of your main feed suffers.

So, for the sake of the mental state of stage crew, moderators and all that support you as a presenter: make your slides work offline. If you present from the stage machine, have it on a memory stick and prepare fonts you use to install. If you present on your own computer, have all you need on your own device and turn off any syncing to Clouds (Apple Cloud, Google Drive, OneDrive, DropBox…) before you start presenting.

Personally, I use PowerPoint and download videos to embed using yt-dlp or Downie.

Public speaking is stressful as it is, don’t make it harder on yourself by relying on tech that may not be available.

Day Zero Activities of WeAreDevelopers World Congress tomorrow

2025-07-08 15:07:32

Hi there, I am currently slightly freaking out as this week is the WeAreDevelopers World Congress in Berlin and I am moderating the main stage with 23 talks in two days and still have to write the closing keynote. Officially the event starts on Thursday, but if you are already in Berlin tomorrow, I put together a grand “Day Zero” agenda on the “Airstream” stage outside the building (the big silver RV).

  • 13:00 – WeAreDevelopers Live
    Join Chris Heilmann and Dan Cranney for the weekly WeAreDevelopers Live show discussing current topics, resources and chatting with GrahamTheDev about all things accessibility
  • 14:00 – Day Zero Challenge
    0day at Day Zero! Take part in a security quiz and learn how to protect your products in a dangerous world. Liran Tal from Snyk will show all about XSS, CSRF and many others issues.
  • 14:30 – Coffee with Developers
    A live recording of our “Coffee with Developers” podcast, this time with Jenn Looper of MSFT/AWS fame, now talking to us how it is to be back in DevRel and what the future might hold for Academia.
  • 15:00 – Tooltime
    Join Chris and Dan from WeAreDevelopers showing you tools they use every day and others they like to create the materials you see on WeAreDevelopers.
  • 15:30 – CODE100 Review
    CODE100 is coming back to WeAreDevelopers World Congress! So this is a good chance to take a look at the older challenges we did and what might be in store for the challengers this year.
  • 16:00 – Drag Karaoke
    Work can be a drag, this won’t be!

Two tools to create QR codes for free and without any ad breaks

2025-06-19 11:25:21

I often have to create QR codes and whilst the built-in generator in browsers is good enough, I sometimes want to customise the look with a logo in the centre. There are quite a few QR generators out there, but they come with lots of advertising, interstitials and other annoyances. So here are two generators I found and use that don’t have any of that:

  • Just a QR code allows you to create one in your browser without any server interaction
  • QRSVG allows you to fully customise and is also available as a JavaScript library

If you really want to geek out, you can also learn how to read QR codes without a computer .