logfile.ch

Why independent blogging should survive the Facebook-ification of the web

Via Daring Fireball, I want to highlight this post from Andy Baio on why the decline of independent blogging is a sad development:

Here, I control my words. Nobody can shut this site down, run annoying ads on it, or sell it to a phone company. Nobody can tell me what I can or can’t say, and I have complete control over the way it’s displayed. Nobody except me can change the URL structure, breaking 14 years of links to content on the web.

So true. He also writes that “getting discovered, building a readership, and profiting from your work” has become much harder. I still have some hope that developments such as Brave or the soon-to-be-launched Flattr Plus will finally offer some alternative to ad-based monetisation for independent web publishers.

Hello, Matrix: Hello, Webhooks

Our Hello Matrix bot (see the announcement and the Gitlab repository) has received a fun new feature: It can now be used to create arbitrary web hooks that, when triggered, will send a message to your room.

How does it work? Just invite him into a room and call !webhook. If you are administrator in the room (power level 100), he will send you a private message with a one-off link to administer the web hooks for the room. You get an overview over the existing web hooks, can edit and delete them and create new ones.

When you create a new web hook, you can give it a name and specify a template. Whenever the web hook is triggered, the bot will send the template you specify as a notice to your room. You can use parameters to pass information passed to the web hook on to your room (see below).

As soon as you save the new web hook, the system will display a URL that you can provide to the sending service to be called. The sender (the service which will trigger the web hook) needs to be able to call this URL and (if necessary) to pass any additional information either as query parameters (via GET or POST) or as JSON data (via POST) to the web hook. You can use these parameters or JSON fields in your message template by giving their name in double curly brackets (i.e. ``).

What can you do with this? Here are only some ideas:

  • Zapier supports sending data to web hooks (including ours). For example, you can set-up zaps that notify your room (via the web hook) about the weather or about new tweets or incoming emails or any of the gazillion other integrations Zapier supports.
  • Uptime Robot supports notifying web hooks when services go offline. You can use it to notify a room if a website you operate goes down. Using their “keyword” feature, you could also use it to get notified if a specific keyword appears on a website.
  • If you run a server, it is very easy to hit the web hook from the command line using curl, so you can post to your Matrix room directly from the command line.

Note that some of these things might also be possible by directly hitting the Matrix API (it’s also just a web API, after all), but by using the webhook interface you do not have to deal with authentication tokens, managing transaction IDs or other intricacies of the Matrix API.

Hello, Matrix

Matrix and its beautiful, user-friendly Riot web / iOS / Android reference client is a new attempt to establish a decentralised, more open alternative to the variety of instant messaging / chat silos that have sprung up in recent years. By combining features such as end-to-end encryption with a modern API and easy-to-use SDKs I feel that this project has a lot of promise.

Playing around with Matrix, I have been working on a small chatbot that connects to various useful services (Wunderlist, Bitmessage, Kanban Tool, Wolfram Alpha among others). You can invite @hello-matrix:matrix.org into your own matrix rooms - he will auto-join and afterwards respond to !helpwith a list of the available features.

You can also host your own version of Hello Matrix. For more details check out the hello-matrix-bot Gitlab repository! Note that at the moment the implementation is really quick-&-dirty, lacking partial features and also being not very consistently coded. Also - and this is a big one in my opinion - it does not yet support rooms with enabled end-to-end encryption. But I wanted to get this off the ground and will build on it in the future.

By the way: If you want to talk about anything logfile-ish, feel free to join #logfilech:matrix.org using your favourite Matrix client for a discussion.

How Facebook is powering a new kind of "media outlet"

Somehow I must have missed this fascinating story by the New York Times Magazine on how Facebook — which has become the primary source of news for millions of Americans — empowers “entrepreneurs” to make a quick buck by letting a couple in the Philippines recycle partisan news stories as Facebook-friendly memes. (Ok, maybe this condenses the article a bit too much… I suggest you read it for yourself.)

Marco Arment goes with ads for Overcast

In his blog post on the matter he explains the thinking behind the move. I am interested to see how this will work out revenue-wise for him. Given his figures that only 3% of users pay the patronage fee (which is now a 9.99$/year premium subscription), he can double his money if the ads for the remaining 97% of users will bring in only 31 cents / user / year - this seems achievable to me.

A short look in the app shows me that he went with Google / AdMob for the ads (are there any others after the demise of iAd?). I’m not a big fan of ads in apps. However, I have to admit that I am also not a big fan of subscriptions - what is great about subscriptions for publishers (recurring revenue that keeps piling on and on) is awful for consumers (recurring expenses that quickly add up and require strict budgeting in order not to get out of control).

He rules out the third option - a one-off payment for the app - based on past experience of declining revenues. As a compromise, I would prefer how it was in the old times: You paid one-off for a software package and could use it for as long as you liked, but if you wanted new features you needed to pay for an upgrade. However, the App Store requires so many hoops to jump through for upgrade pricing that this model seems to disappear. A pity. (Okay, I do admit that there are other reasons for this development as well - one being that going without upgrades is a bad idea for many applications these days as any unpatched security flaws will get exploited in no time.)

"Demystifying The Regular Expression That Checks If A Number Is Prime"

I love this approach to check if a number is a prime using regular expressions. Everything marrying real math with the strange world that are regular expressions is awesome by definition. That’s the Java code:

public static boolean isPrime(int n) {
  return !new String(new char[n]).matches(".?|(..+?)\\1+");
}

Don’t worry. The link above explains everything.

Welcome to the new logfile

We’re still self-hosted, still generated by a static site generator (but now using Jekyll instead of Pelican) and still not sure what our topics are going to be.

So, what is new? Well, the look is new (although still trying to be as simple as possible). And the aim is to provide shorter, but more frequent commentary, especially by linking more to interesting stuff found elsewhere. The concept is borrowed from Daring Fireball, which combines links with a short commentary from John Gruber himself. In this sense, the new logfile is closer to the original idea of “weblogs”.