cover photo


Mmmm, self-cooking bacon


124431 views and 504 votes on Imgur
Creating a Derived Theme with own schemas and Custom Theme Settings

!HUBZ!LLA Themes
I just created an howto on creating Hubzilla theme with own schemas and Custom Theme Settings (It is based on Maybe it would be good to add it on a wiki somewhere, didn't find the right place yet. Needless to say, I'll be glad if anyone wants to review it :)

Creating a Derived Theme with own schemas and Custom Theme Settings

A derived theme takes most of the settings from its "parent" theme and lets you change a few things to your liking without creating an entire theme package.

To create a derived theme, first choose a name. For our example we'll call our theme 'mytheme'. Hopefully you'll be a bit more creative. But throughout this document, wherever you see 'mytheme', replace that with the name you chose.

Directory Structure

First you need to create a theme directory structure. We'll keep it simple. We need a php directory and a css directory. Here are the Unix/Linux commands to do this. Assume that 'mywebsite' is your top level Hubzilla folder.

cd mywebsite
mkdir extend/theme/mytheme
mkdir extend/theme/mytheme/css
mkdir extend/theme/mytheme/php
mkdir extend/theme/mytheme/tpl
mkdir extend/theme/mytheme/js

Great. Now we need a couple of files. The first one is your theme info file, which describes the theme.

It will be called extend/theme/mytheme/php/theme.php

Inside it, put the following information - edit as needed


* * Name: Mytheme
* * Description: Sample Derived theme
* * Version: 1.0
* * MinVersion: 3.8
* * MaxVersion: 6.0
* * Author: Your Name
* * Compat: Red [*]

function mytheme_init(&$a) {

App::$theme_info['extends'] = 'redbasic';


Remember to rename the mytheme_init function with your theme name. In this case we will be extending the theme 'redbasic'.
Now create the actual CSS file for your theme. Put it in view/theme/mytheme/css/style.css (where we just told the software to look for it). For our example, we'll just change the body background color so you can see that it works. You can use any CSS you'd like.

body {
background-color: #333;

To use your own schema for your derived theme, copy view/theme/redbasic/php/style.php to extend/mytheme/php/style.php. Modify that file and remove (or comment out) these two lines:

if(local_channel() && App::$channel && App::$channel['channel_theme'] != 'redbasic')
set_pconfig(local_channel(), 'redbasic', 'schema', '---');

Also add this line at the bottom:

echo @file_get_contents('extend/theme/mytheme/css/style.css');

You can also set your theme defaults in this file.
To show the schema selector you have to copy view/theme/redbasic/tpl/theme_settings.tpl to extend/theme/mytheme/tpl/theme_settings.tpl

Copy view/theme/redbasic/php/config.php to extend/theme/mytheme/php/config.php and change the following lines to include your theme name:

class RedbasicConfig {
class MythemeConfig {

$files = glob('view/theme/redbasic/schema/[i].php');
$files = glob('view/theme/cyberpunk/schema/[/i].php');

if(in_array('view/theme/redbasic/schema/default.php', $files)) {
if(in_array('view/theme/cyberpunk/schema/default.php', $files)) {

Add a directory called schema. In that directory you will to create the scheme files for each scheme such as myscheme.css and myscheme.php.

In the scheme's php file you can set the defaults variables such as:
if (! $link_colour)
$link_colour = "#fff";

In the css file set your custom css.

(Check the redbasic schema for examples)

Customizing page layout

You can also add pdl files to your theme to overwrite source pdl's. add directory named pdl to your theme, copy any file from view/pdl/ and edit it to your liking.

Enable the theme

Link your theme to the view/theme directory so it can be enabled in the admin panel.
sudo -u www-data ln -s /path/to/hub/core/extend/theme/mytheme/ /path/to/hub/view/theme

\o/ You've just successfully created a derived theme. This needs to be enabled in the admin "themes" panel, and then anybody on the site can use it by selecting it in Settings->Display Settings as their default theme.

Don't forget to add a png screenshot of your theme to extend/them/mytheme/img so it diplayes when chosing a theme.
  last edited: Fri, 30 Nov 2018 20:17:46 +0100  
Looks like I am missing few changes to php/style.php to make the theme work with its own schema (changing 'redbasic' to 'mytheme'.

Lines 45-72:

if (($schema) && ($schema != '---')) {

// Check it exists, because this setting gets distributed to clones
if(file_exists('extend/theme/mytheme/schema/' . $schema . '.php')) {
$schemefile = 'extend/theme/mytheme/schema/' . $schema . '.php';
require_once ($schemefile);

if(file_exists('view/theme/mytheme/schema/' . $schema . '.css')) {
$schemecss = file_get_contents('view/theme/mytheme/schema/' . $schema . '.css');


// Allow admins to set a default schema for the hub.
// default.php and default.css MUST be symlinks to existing schema files in view/theme/redbasic/schema
if ((!$schema) || ($schema == '---')) {

if(file_exists('view/theme/mytheme/schema/default.php')) {
$schemefile = 'view/theme/mytheme/schema/default.php';
require_once ($schemefile);

if(file_exists('view/theme/mytheme/schema/default.css')) {
$schemecss = file_get_contents('view/theme/mytheme/schema/default.css');


and add this line:
$x .= file_get_contents('extend/theme/mytheme/css/style.css');
$x = file_get_contents('view/theme/redbasic/css/style.css');
LSalanderLSalander wrote the following post Wed, 28 Nov 2018 20:55:47 +0100
@Om*@Om* wrote the following post Fri, 23 Nov 2018 11:17:54 +0100

welcome to the awkward future of the open office...

view full size

I have seen the future — in fact, I have worn it. It's big and awkward kind of digs into the top of your head with little metal bars designed to hold it in place.

I was like 95 percent sure Wear Space was some viral bit of social commentary the first time it popped up online. And yet, here at an event in Tokyo, the horse blinder-style wearable was right there for all the world to see and try on.


The device is still very much in prototype mode, so the uncomfortable bit is something that will likely be resolved before the device starts shipping. The awkwardness of actually wearing the thing, on the other hand, is the sort of thing that takes time to dissipate.


The product is light weight — a good quality for something designed to be work on the head for hours at a time. It's really just a wireframe with a cloth covering that blots out your peripheral vision, while still giving you plenty to look at in front of you. It somehow felt dystopian and weirdly comforting all at once. At very least, I feel like I have a new-found respect for horses.

Inside are a pair of on-ear headphones. They're not noise canceling, so they won't block out everything, but maybe having read on ambient noise is a net positive on something like this.


I will say this: having seen the bizarre things people will put on their heads for the 14 hour plane ride it took to get to Japan, nothing about the Wear Space feels out of the realm of possibility. I mean, if this can be a thing, why not, right?


Keep in mind, too, that we've done this to ourselves. Open offices were going to the be the great workplace revolution of the early 21st century, and all we got were these strange horse blinders for people.


#blinders #dystopia #openplanoffice #workplace #headphones #video #animatedgif
Pavithran SPavithran S wrote the following post Fri, 23 Nov 2018 11:09:09 +0100

#Blackfriday #consumerism explained

#shopping #retail

by Steve Cutts on YouTube

No clue who the artist is, but nice video.
User Debug tagged Antilopa's post with ⋕techart
The Tor ProjectThe Tor Project wrote the following post Mon, 08 Oct 2018 19:58:10 +0200
Walmart filed a patent to use biometric shopping handles to track customers' heart rates, temperatures, and stress levels.

Nothing to worry about at all.

F*ck That: An Honest Meditation

F*ck That: An Honest Meditation
by Jason Headley on YouTube

Tags: #Nomad

*via Nomad client (Source)
CASPIAN HAT DANCE LIVE! + DJ's LAY DNA & Ramses Hoppa - OCCII | Onafhankelijk Cultureel Centrum In It


The return of CASPIAN HAT DANCE! The band who raised the roof of literally every venue in Amsterdam, the Netherlands and Europe is back with a new CD release and concerts! Kicking off in the place where it all started: OCCII ! "
LiberapayLiberapay wrote the following post Fri, 12 Oct 2018 18:44:33 +0200

Liberapay status update

No, we’re not dead.

Three months ago we announced that Liberapay was in trouble. Since then we’ve been working on adapting the platform to work with other payment service providers, and today we’re finally ready to announce that #Liberapay now supports two separate payment processors: Stripe and PayPal.

What you need to do

If you use Liberapay to receive #donations: you need to connect at least one Stripe or PayPal account, otherwise donations to you cannot be processed. If both #Stripe and #PayPal are available in your country then we recommend setting up both.

If you’re a donor: you don’t have to do anything right now. You will automatically receive a notification when it’s time to renew your donations. Note: the page to manage your donations has been redesigned to fit how Liberapay works now, and also to fit small screens.

view full size

How Liberapay works now

As stated in our previous blog post the way donations are processed needed to evolve for Liberapay to be able to survive and grow. This announcement caused some confusion and worry, so here’s an attempt to better explain the change.

In the past when a user wanted to donate they were asked to add money into their “wallet”, and once the money had arrived it was transferred little by little every Wednesday to the donation recipient(s). This created a very long delay (sometimes years) between when the donor sent the money and when the beneficiary actually received all of it. During that time the money stayed idle in Mangopay wallets, not being useful to anyone.

Now the entire amount of a payment goes immediately to the Stripe or PayPal account of the recipient, there are no more wallets. However, the donations are still recurrent: the amount of money sent still corresponds to a specific number of weeks and the donor is still notified when it’s time to renew the #donation.

Let’s take an example: Alice wants to donate $1 per week to Bob, and she decides to send $12 for her first payment. In the old system the money would have gone into her Mangopay wallet, then every Wednesday $1 would have been transferred from that wallet to Bob’s wallet, until there wasn’t any money left in Alice’s wallet. In the new system the $12 go directly to the Stripe or PayPal account of Bob, and every week Liberapay subtracts $1 from the amount that Alice has paid in advance, until that number reaches zero. In both systems Alice receives an email notification after 12 weeks reminding her that it’s time to pay again, and Bob receives an email every week informing him that his income” is $1, even though in the new system Bob actually receives the $12 on the first week instead of $1 payments every week.

If Alice decides to modify the amount of her donation, then the date of the next payment changes accordingly. For example, if immediately after paying she increases her donation to $2 per week, then the renewal will be 6 weeks later instead of 12. However, if Alice decides to stop the donation she will not automatically receive a refund of the money she has paid in advance, because this isn’t implemented yet. If you stop a donation and you would like a refund please contact us.

A big shortcoming of the new system is that every donation has to be paid separately, which can be quite annoying if you have many of them. We’re planning to tackle this problem in two different ways: by avoiding it whenever possible (Stripe and PayPal both have partial support for doing multiple payments at once), and by making it easier to manage the multiple payments when we can’t bundle them all together. The latter involves helping the donor to schedule the payments in an optimal way, then either executing them automatically (if desired and possible) or simply notifying the donor when it’s time.

Another important issue is that PayPal payments are currently not anonymous, the donor and the recipient can see each other’s email address. We may be able to fix that in the future, it depends on getting approval from PayPal.

Finally, a drawback of abandoning wallets is that Liberapay’s team system relied heavily on them. We’ve been able to make donations to teams work again, but only in a simplistic way: when a donor wants to send money to a team our software selects one of the team’s members to receive it, whereas ideally the payment should be split into multiple transfers so that every member receives its share. This shortcoming means that some members can receive more money than they should, although over time the disparity should tend to disappear as new payments are received by the other team members.

Status of Mangopay

We disabled adding money to a wallet on July 19th, and stopped processing transfers between wallets on August 21st. However, withdrawing money to a bank account is still possible. As of today €23.6k and $2.6k remain stored in 640 wallets. You may want to check your wallet.


Thanks to the donors who followed the recommendation in our previous blog post, a total of €37k and $5.8k was donated in advance, thus greatly reducing the short term impact of the Mangopay crisis on the available income of creators. Unfortunately €16.8k and $8k were refunded to donors instead, either by choice or by inaction (on August 25th we refunded as much of what was left in the wallets of donors as possible). Hopefully at least some of that money was donated in other ways.

About Stripe and PayPal

Stripe and PayPal are both #payment services that can be used without Liberapay, whereas Mangopay accounts cannot be accessed directly by their owners and aren’t shared between platforms. This big difference means that if you were to stop using Liberapay you would still be able to receive #payments through Stripe and PayPal in other ways.

Stripe is a payment service designed to help businesses collect payments from their customers easily and securely. On Liberapay it allows donors to pay by card directly from our website, whereas PayPal payments require redirecting the donor to PayPal’s website. Stripe also supports other payment methods in addition to cards, the one we’re currently working on is the SEPA Direct Debit, which as you may know we used to support through #Mangopay.

Stripe’s biggest flaw is that it only supports sending money to a relatively small number of countries (less than 30), so some of our users cannot use it. This is one of the reasons why we also support PayPal, which operates pretty much worldwide (more than 200 countries).

While it is sad that Stripe isn’t more global, at least they’re clear about which countries they support, whereas Mangopay wasn’t clear at all and even silently dropped support for countries they had users in! Liberapay will work much better outside of Europe now that we use Stripe and PayPal instead of Mangopay, and we will be able to support many more #currencies in the future.


Liberapay is recovering, but it will take at least several more months before everything is fully operational again.

Original post on #Medium

#OpenSource #en #Crowdfunding #Micropayments #Commons
Just watched the documentary The Work - A group of civilians going for group #therapy with inmates of a high security #prison. Shit get pretty intense. In a hopeful way. Emotions let loose at a place one least expects it, there is much to learn from that.

The Work - Prison Documentary
by Documentary Movies - Topic on YouTube
Devine Lu LinvegaDevine Lu Linvega wrote the following post Wed, 10 Oct 2018 21:19:56 +0200
ploumploum wrote the following post Thu, 27 Sep 2018 09:21:28 +0200
Thx for sharing!
ralphtheninjaralphtheninja wrote the following post Fri, 21 Sep 2018 15:14:15 +0200
@Fairphone I noticed that on your homepage you list birdsite, fb, instagram etc. It would be nice if you listed your mastodon account as well!
Managed to resurect my #fairphone that went for a good dive in my back pocket, when I fell into a water trench (sloot).

It was completely soaked (and so was I), so nice to be able to take apart all components so they can dry properly <3

Happy ending for an emberassing moment :P

Absolute user privacy is not compatible with national interests.

Western power bloc warns big tech companies of limits on privacy


Summit of US, UK, and other countries stated that end-to-end encryption cannot be accepted
European parliament votes in favour of #article13 #copyrightmachine #uploadfilter.


Y AY A wrote the following post Tue, 11 Sep 2018 22:47:52 +0200
New data shows girls as young as 14 face regular public sexual harassment


The survey of 1,002 girls aged 14-21, published on September 5, showed that more than one-third (38 percent) of girls are catcalled, experience wolf whistling or are at the receiving end of sexual comments in public at least once every month.