The future of joind.in

Since my last post about my personal feelings about the shutdown note for joind.in a lot has changed! The feelings I expressed are still valid but are backwards directed. Sometimes it is necessary to express thise feelings to then be able to look forward and see where to go next. So in this case.

Joe Ferguson took the lead and managed to herd a great bunch of people to keep joind.in going. And I’m honoured to be one of them. So let’s see what the future brings and especially how we can avoid such frustration for others in the future. I know we already messed up on at least one occasion but nobody’s perfect….

For more information on the future of joind.in have a look at the joind.in blog

An open letter to the joind.in Maintainers

This is my personal reaction to this github-issue

To be honest: I’m disappointed. And frustrated.

Lornas note about closing down joind.in got me rather by surprise. As a long time contributor the project and maintainer of a joind.in-sideproject I knew that we were loosing traction. That was one of the reasons why I tried to get us together to find a way out of this stale situation. Sadly we never managed to find a date or time. And due to the stale situation and no real or timely response to PRs and Issues peoples attention drifted away from the project. So the base of people that contributed intensely faded. But there were still some people left. Not only me but f.e. Scott or Dan.

I would have expected a call from the maintainers to those few people that were still contributing and showing that they cared about the project about the situation and to find a way out. Have a discussion with them. It might have been that we all agreed on giving up. But we will never find out as it didn’t happen.

Instead we are confronted with a fact. Presented by someone that stepped down as maintainer some time ago.

That is frustrating. Especially as we tried to gain traction by assigning tickets an easy-pick label just a few days ago. To attract new contributors. Reading that there were no people willing to step up as maintainer is frustrating when you multiple times offer to help out. When you offer to take action in different fields, all you need are the keys: and nothing happens.

And it’s disappointing: I thought we’d communicate differently. Disappointing as the offer was provided multiple times to help out to keep the project running (The offer was never taken). Disappointed that the information did not come from the maintainers but from someone not really actively involved anymore.

Sorry to say so and I still want joind.in to be alive. But I’m increasingly thinking about just letting it go. It was an interesting time and taught me a lot. Perhaps it also teaches me how to let go and how to handle frustration and disappointment?

Convert a Website to SVG

It might not be a common task to convert a Website to SVG but in my case I wanted to have a screenshot that I could scale like a website but that was independent from reloading stuff from the internet. Background is that I wanted to embed a tweet in one of my slides for a talk.

So far I did that with a screenshot but that is not scaleable so depending on the projector it wold show up either very small or as pixel-art. Most of the things in such an embedded tweet are text and should be scaleable to almost any size, I thought. So why not get a vector-graphic instead of a pixel-graphic from that embedded tweet?

And after asking for help on twitter I found (thanks Stephan) HiQPdf that can convert pasted HTML into SVG.

Create the SVG

So I copied the complete website from the embed-preview on twitter into the HiQPdf-Form and got an SVG-file that looked the same as the webview from Twitter. So it works.

Though when I wanted to include that SVG like the screenshot I took previously, I realized that something was not quite as good. The width was not correctly set, so I had do do some manual work afterwards as well.

And it turned out that from the 100kb I got as an SVG-file I could remove almost 84kb as they where empty statements that did nothing at all. And the width and height-values that were given in the SVG-tag where also not completely correct. So after removing the bloat and setting the width to a better value (by trial and error) I even got a file smaller than the sceenshot I took previously. 16kb for the SVG compared to about 24k for the PNG.

And then the SVG behaved exactly like the PNG except for the better scalability!

So all in all using SVG instead of PNG for screenshots can work out great with a tool like HiQPdf (there for sure a re multiple others, I just didn’t test them) but be prepared to at least set the width and height correctly and if you want to have smaller files also expect some manual work to debloat the SVG.

And here are the results:

PNG

PNG

SVG

SVG

Setting up IRC the weird way

I’m not going into why you should use IRC here as that’s a full blog-post in it’s own. Just so much: When you’re doing OSS development then there is almost no ways around IRC.

But IRC in itself has had some major drawbacks for myself:

  • I couldn’t log into IRC from different devices under one name
  • conversations that took place when I wasn’t logged in where lost to me
  • I didn’t get notified of mentiones when I wasn’t logged in.

Continue reading Setting up IRC the weird way

Scoping PHAR-files

PHAR-files are a great way to bundle code that can then be used like a binary. Therefore PHAR-files are often used for tools that can be included in a CI/CD setup. As they are self-contained archives they use their own autoloading mechanism and therefore don’t depend on your code. Which is great if you want to use them as build-tools because the tools dependencies don’t interfere with your project dependencies.

Imagine you’d want to use a build tool that requires PHP 7.2 with your legacy code that still needs to run with PHP 5.6… Most probably your composer require --dev awesome/build-tool would not work because of a dependency mismatch. Even though you might be on PHP 7.2 at the moment. Using the PHAR-file removes that dependency as all the required files are contained within the archive. And the PHARs autoloader takes care of getting the right files.

Continue reading Scoping PHAR-files