!Hubzilla Support Forum The tabs "Newest comments" and "Newest posts" often show the same items. I think that all posts from foreign networks like Mastodon or Diaspora are listed under "Newest comments" even if they don't have comments. I think this is a bug. Am I right?
it is quid good to have this two different views of the stream i think
I like a lot this choice.
@Jan Ulrich Hasecke
For me they are nearly useless.  

maybe that's the case if you don´t have much contacts... if you make more contacts you will see that this two ways of filtering the stream is quid useful
"Share" textbox not working (for composing new messages)

 Barcelona last edited: Sat, 26 May 2018 16:32:55 +0200  
!Hubzilla Support Forum !Disroot Community
I hope you can read this message properly. I am having trouble to write new messages in my Hubzilla instance (hub.disroot.org). When the textbox to write new ones appears (for example, when I click on my Personal Channel), it does not work: When I click in it, it should unfold to show the title, tags, a big textbox and the formatting icons below. But it does not: it just stays without resizing. I can write there, and even a long text with more than one line (although it is hard to scroll because no it has no scroll bars), and, since no "Share" button appears, it is useless.
The only way I have found to compose a new message is adding an app to the menu called "Entry" (well, I suppose it is called like that, because I use it in Catalan, so I don't know the exact names in English for each function I am mentioning here) with a pencil icon. This is how I am writing this message, actually.
I will try to add two images to this post to show the app, and to show how the compose textbox stays small even with the cursor in it.
Despite this bug (I guess it is a bug), I do can write comments to posts, and the textbox for comments works as expected: when I click in it, it unfolds, with a bigger room for the thextbox and some formatting icons. Apparently this bug affects only the "Share" textbox that appears above.

Do you know what could be happening?

I have tried this with Firefox and Chromium, from a Debian Unstable, and both show the same behaviour. I have also tried to change the theme, but it does not affect the bug.

This seems to be the root cause

SyntaxError: missing ) after argument list[Més informació]

This isn't a file I know about in the project repository so I'd be talking to your site admin. I've seen the source map error before and it's annoying but seems to be harmless. We also know about the scroll linked effect warning and it's also harmless (at this time).
Thanks a lot! 🙏🙏
I also mentioned DIsroot Community, hopefully someone else will catch it too. Maybe there is a better group? I am totally new in Hubzilla, so maybe I haven't looked at the right place to find out.

I use Hubzilla in Catalan
Wow, very interesting: I have switched to English and now it works well! Good job in locating this! 👍🙏✨
How I intend to deal with GDPR on my hub Askröd.hubzilla.se

!Hubzilla Support Forum

One of the fundamental roles in GDPR is the Controller, the one that is responsible. One might think that this is the fellow that actually works with the information but that is not the case. The controller and the responsibility comes with the mandate to decide the purpose and means of the processing of personal data (Article 4, point 7). The controller is the the legal responsible throughout the rest of GDPR. The fellow that works with the information just have to oblige to what the Controller have decided.

My node is small, we are about 5 users and we started the node just a few month ago. The usage beside my own is slim to none.

I have decided that I will not alone take the responsibility of the Controller. Instead I have invited all users to take the responsibility of the Controller in a shared and democratic manner. We will jointly decide how the information of the node is used and I (the technical admin) will then oblige to this. The result is that the Controller and responsible is the user collective altogether.

If this works out we will see, perhaps I will be the sole user on the node and I will have my democratic discussion with my self.

Also, it is not like there is much to decide, just that the information shall not be sold and not be used for marketing.
BTW Jan, GDPR applies to all processing of personal information with a few exceptions in relation to private stuff and stuff clearly related to the hose hold. Forgot the exact article but is one of the first.
I am member of a cooperative hoster in Germany and we currently plan to setup a social media instance. In our case the situation is quite clear as we have a cooperative as legal entity. At the same time the cooperative is governed in a democratic way. So this will work somehow.

If it is feasible to setup a bigger instance without a legal entity I cannot say. Shared responsibility in a commons way – I am not sure how the GDPR covers this.
Well, as I mentioned; the Controller is responsible for most everything unless someone breaks the rules given by the Controller. The definition of the Controller is the person/entity/board that decides the purpose and means to process personal information. The one that decides. If a employee decided to go out of boundaries he/she becomes an Controller as he/she decides about own processing. I think it makes sense.

If the entire community on a hub helps out deciding the means and purpose we are all responsible Controllers. It is just about finding a proper way to ensure that we all actually take part of the decision process.

This is most certainly not the intention of GDPR :)
!Hubzilla Support Forum
Hello, it's me again :-)

After some days off, digging through the PHP-source code and a lot of thoughts about the hubzilla permission system I will try to sum up what I have learned. Would be very kind of you to check if I made something wrong or overlooked something completely.

The hubzilla permission systems consists of three levels:

1. Channel permission limit
2. Connection permissions
3. ACL - access controll list

While channel permissions are the most general permissions (also called permission limits) the ACL is most specialised permission for a single accessible object.

How permissions work
When someone wants to access lets say a photo from one of my albums the permission to access it will be determined the following way:

Is the accessing one an approved connection?
No: permissions are regulated by the permission role of my channels
Yes: the individual permissions of this connection is checked

The connection has the individual permission to access my photos?
No: no access
Yes: check ACL for individual photos

Is the connection in the ACL for the individual photo?
No: no access
Yes: access

That's the easy part. But what are channel permissions, how are the individual connection permissions determined, what are the ACLs made of and are there any special rules?

Channel permissions:
Each channel has a permission role which can be selected in the security section of the channel settings. A permission role consists of:
1. permissions (like "can view my posts")
2. visibility settings (chat, directory)
3. default privacy group
4. auto privacy group for new connections
5. permission auto (automatic approval of connection request and apply of permissions)

There are several permission roles predefined. 2 to 4 are only editable in the custom/expert role. For all other predefined roles settings 2 to 5 cannot be changed.

If a default privacy group is set for a permission role this group will be preset in the ACL dialog.

If the auto privacy group is set all new connections will automatically be added to this group.

If the permission role has automatic permission settings a new connection request will be automatically approved and the individual connection permissions assigned.

In the predefined roles the default privacy group and the auto privacy group will always be the same namely "friends" or none.

To be done: detailed table of permission roles.

The permissions make up the channel permission limits. Each channel permission can have one of the following values:

1. Only me
2. Public
3. Anybody in the $Projectname network
4. Any account on %s
5. Any of my connections
6. Only connections I specifically allow
7. Anybody authenticated (could include visitors from other networks)'
8. Any connections including those who haven\'t yet been approved

For the predefined permission roles only "Public" and "Only connections I specially allow" are used. The last one is set in the individual connection permissions.

Individual Connection permissions:
When a connection is approved the individual permissions are assigned to this connection corresponding to the channel permission limits.

All permissions which are set to public by the predefined permission role are inherited and can not be changed for the individual connection permission.
In most predefined permission roles these are some or all of the "can view my" permissions. All other permissions can be changed.

And here comes the part I'm not sure about. I tried to get it from the PHP-source but as I'm not a PHP-developer this was sometimes very confusing.

Normally I would expect that all other individual permissions would be empty by default for new connections apart from the inherited ones. But it seems to me that some default permissions are automatically assigned (apart from the inherited).

Is that right? And if so are these default permissions independent of the predefined permission role? And if a activated the permission groups are these defaults equal to the permission role "default"?

Permission groups
If you have a common set of permissions you always want to use for your connections you can activate the additional function "permission groups". You can define several permission groups by your own and apply them to each of your connection. You can also set a default permission group which is applied to your connections by default.

The ACLs are used for the individual items you share, like photos, files, posts etc.
For each of them an ACL can be set.

For an ACL you can choose between the following possibilities:
1. public (depends on channel permission limit)
2. Profiles (when using multiple profiles visibility)
3. Privacy groups
4. Only me
5. Custom selection: privacy groups, token, individual connections

If you are using a channel permission role with a default privacy group this group will be preselected in the ACL dialog but can be changed.
Furthermore ACLs cannot be changed for items which are transferred to other hubs (like posts) but can be changed for items which are accessed from outside on my server (like files or photos).

I hope I got it right this time. Next thing would be to draw a nice picture because a picture is worth a thousand word. And maybe polish the text a bit for the help.

Am I missing any special cases?

I'm a bit confused by meaz permission roles table (btw great work).
Especially from things like: Can send me their channel stream and posts (my "friends" privacy group)

Feedback is very welcome.
What luck. So I finally got it. :-)
Slowly the meadow turns green as we say sometimes in Germany.
Each permission role has a predefined section of permissions for connections:

$ret['perms_connect'] = [
                    'view_stream', 'view_profile', 'view_contacts', 'view_storage',
                    'view_pages', 'view_wiki', 'send_stream', 'post_wall', 'post_comments',
                    'post_mail', 'chat', 'post_like', 'republish'
Next thing would be to draw a nice picture because a picture is worth a thousand word

+1 But not a table, something more process oriented would be nice.
!Hubzilla Support Forum

Is ther a way to put this counter at zero

!Hubzilla Support Forum
@Andrew Manning
I tried to include a ToC to help files using the markdown functionality.


Does this make sense to the documentation or should I leave them out?
So I will change H1 to H3 and H2 to H4?
Let's see if Mario responds with an explanation. It may be an obsolete requirement now.
My intention was/is to have appwide headings. h1 is reserved for some rather big text like the Title at the login page and similar situations. Page headings are h2 so the top heading of a page content is h3.

If somebody has a better or more standard solution, let me hear about it ear
Account migration

A question regarding account migration:
  --> Is it possible to transfer data from a Diaspora* account to a Hubzilla account?

NB: I use servers that are not mine, so I only have access to the options of web user interfaces.

Thank you in advance.
until some time ago it was possible, but now I can not answer you. Many things have changed in the basic code.
 my house near the sea 
what do you suggest for this?


@Hubzilla Support Forum+
Check your connections. Many will not be accessible. Remove these connections.
They can also be unattainable clones.
In any case: your server has problems delivering the messages.
...Many will not be accessible.
and unattainable clones.

is a classic  in public hubs for what i know.

problem is that the numbers in the queues are very large, and I would like to know how to act in this case. If there is a possible and better combination (....Deliveries per process, Queue Threshold...).
!Hubzilla Support Forum


I've recently been giving Hubzilla (and Friendica for comparison) a whirl since having a brief, albeit less successful, look at both of them several years ago.

Just wondering if there is a Facebook plugin to post from Hubzilla to Facebook as there are for Twitter and other services? I've noticed references that there suggest there was such a thing in the past but that it has been removed. Am I missing something? Is there such a beast still?
Thanks Mike. That makes sense - hubzilla's focus on privacy and ethics is what makes it so appealing!

Probably best to forget any FB addons and just focus on moving on further away from them I think. The better long term option anyway... ;-)
If I got things right each channel is available via an RSS stream. There used to be applications in facebook publishing content from an RSS feed. Viola - published on Facebook with a link back to Hubzilla.

This was my own plan, but I never found an RSS feed publish app (well not during the 30 seconds I searched for it) and then I decided to leave Facebook.
Ifttt is not accepting the hubzilla feed.
publication in activity / publication in pubstream

!Hubzilla Support Forum

Hello here

I'm configuring my first instance and I noticed a strange thing.
I published a post this morning and I see "2 likes" since my activity (/network).

But if I look in my public stream (/pubstream), there is mention of "4 likes"... two suplementary likes from diaspora* (of nobody that I don't know about.).

View in my activity :
View In /pubstream of my server

I think i could fix that as per Mikes suggestion: https://github.com/redmatrix/hubzilla-addons/commit/1ae5bff05c84bc95dc769133c224e9564167a366

the long-term plan is to deprecate this setting and use only the social-federation permission role to control whether unknown people on other networks can comment on your posts

How should that hook in?
Just cheking the role would prevent custom roles to be able to set this...
I meant just checking perm_is_allowed(), not the role name.
 from Diaspora
Sans être du tout spécialiste du sujet, je dirais que c'est un problème de fédération des pods. Mais je peux me tromper. Bon courage :)
Ignoring users

@Hubzilla Support Forum+ Is there a simple way to just ignore someone? Something that works regardless of which network they're posting from would be absolutely stellar!

#hubzilla #question
Sure, click on the profile image, select edit connection and then from the connection tools dropdown select ignore.
Enable superblock addon.
reduce the permissions on your side (just for the case you've set some).
Ah, beautiful! Thank you!

I'd like to be digital but I can't...I'm sad ;)
I think we had a plugin for gender with more options than I have ever seen anywhere else. :-)
Yeah, 37 genders \o/
...could be 38 ;)
!Hubzilla Support Forum

Let's say I have multiple channels on the same account. Is it possible (and if yes, easy enough) to tell which account they belong to, that they belong to the same account, that one and the same person runs them, or is that kept secret?
yes, it is possible.
The channels belong to the account.
No it's not visible for other channels to see which channel belongs to which account. Only the local Admin can see this.
We guggest to use a dedicated account when you create for example a forums channel for a society. Cause the account owner can leave the society but the forum should remain inside.
Error connecting to the db

Just noticed my log flodded with:
SQLSTATE[HY000]: General error: 7 no connection to the server
2018-05-22T20:50:59Z:LOG_ERR::dba_driver.php:459:db_logger: dba_pdo: ERROR: SELECT id FROM photo WHERE resource_id = '"XXXxxxxXXXXXXXxxx' LIMIT 1;

I saw that issue the other day aswell. Despite the error hub works and I can see other queries execute. Any idea whatsup? @Mario Vavti
That's in the function to generate a unique photo id. There's a small problem with the logic in that it will keep failing over and over if the DB goes away. I've just fixed that, so that will stop it from flooding.  It won't stop the DB from going away. That's in your hands.
Thanks. I will look into why this could be happening.
On some shared hosting sites there's a limit to maximum concurrent DB connections. It's that kind of thing that would be suspect and would probably be buried in the configuration of whatever you're using for FCGI.
Hi! :)
I already posted this on other places, but finally I hope I can reach you...
How is hubzilla dealing with scalibility? I don't see any queue manager or redis to cache database queries... How do you deal with big instances which you can't anymore scale vertically?

Props... and great work guys \o/
Expiration is your friend. Saving everything that everybody you met online ever wrote - forever - on every connected server isn't just inefficient, it's also pretty creepy.
I think its more of a question of having 1000+ users on one instance rather then database size.
Several hubs behave as an integrated system out of the box if left in the same "realm" (global network namespace), so it is the easiest way to scale above a few hundred or thousands of users, besides setting the right expiration times.

To be more precise, I don't have a notion of Hubzilla having a REST-ful design, so horizontal scaling of the components alone or else (as opposed to models and views in an MVC-style REST architecture) and classical load-balancing is not easy to achieve as of now I think.
Bug with privacy group creation

I think there is a bug with privacy group creation.
If your webbrowser is set in English, then a Privacy group names "Friends" is created. Then, if for some reasons your webbrowser is set in another language (for example if you're on a trip), then, a new Privacy group is created in this language. So you endup with two different privacy group...
Mario, if it happens when I accept connections with a private channel role. As new connections are added to the Friends Private group, it creates if in English if on an English FIrefox, and in another other language if firefox is set to another language. So, I get connections in two differents groups, some in "Friends" and some in "Amis" (french translation of Friends)
I see. Thanks for the explanation.
Problems with connection ignored/deleted

!Hubzilla Support Forum

I have some struggle with the difference between ignoring a channel connection and deleting it. It seems to me that the only difference is that the ignored channel appears in the connections page, so we can change its statu at any time. The deleted one is completely removed so doesn't even appear in this connections page. Is that correct or are there any other differences?

The seconde point seems like a bug to me. Channel A creates a connection with Channel B. Channel B deletes this connection when it receives the approval notification. So Channel B appears in Channel A connections list with a one-way sign. But when Channel A goes on Channel B page, there is the "+Connect" button on Channel B's avatar. That's kind of confusing because even if the connection wasn't approved by channel B, the connection exists on Channel A side...
so there is no much difference? I still don't get it...
a deleted contact disappears,
while the ignored contact is always there, on the list, ready to be "admitted to your  harem".

Another thing: if you initially accept and then later ignore, the person in question does not even realize, on the contrary if you eliminate  he notices.
A connection is nothing more than a grant of permissions.

An ignored connection still receive your stream (and any other permissions you have granted them). You just aren't listening or receiving anything they write.

A deleted connection has the same rights as the general public.
Wiki: problem with revert

!Hubzilla Support Forum

I'm doing some tests in order to understand how wiki work.
I have a problem with the "revert" option. When I click on it, I have this message: "Page reverted by not save". However, there is no "Save" button. I tried to click on this message, but nothing happened. And when I go to the edit page (where the is a save button), nothing changed, the content was not reverted, so nothing to be saved.

Is that a bug or just that there is something I didn't get?
You have found a bug where the disabled Save button is not enabled when a reversion is performed. The fix should be straightforward.

The revert feature does work, at least in all my testing. It is possible that the reason you do not see a change in the text after clicking the Revert button is because you have selected the first Revert button in the list, which is actually the latest revision.

Originally I designed it to work like this: If you want to revert to a previous version, you go to the History tab and use the Compare buttons to find the revision you want. Then you press the Revert button. The text changes but a new revision is not saved yet because you may want to make further edits prior to saving. The reason the most recent revision has a Revert button is because you may revert to a previous revision and then change your mind and wish to go back to the most recent one without reloading the page.
Thanks Andrew for your answer.

I did some tests.

A created a wiki with threee lines.
Test 1
Test 2
Test 3

I saved each time wrote a line so in the history I have something like:

Date 2018-05-25 09:40:00
Name: meaz
Message: test 3
Date 2018-05-25 09:38:00
Name: meaz
Message: test 2
Date 2018-05-25 09:36:00
Name: meaz
Message: test 1

If I click on Compare for test 2, I see that:
Actual version:
Test 1
Test 2
Test 3

"Test 3" text being displayed in red.

Selected version:
Test 1
Test 2

It makes sense: "Test 3" was added after "Test 2".

What I don't understand, is that if I click on Revert, here is what I see as being reverted
Test 1

Why don' I see the following?
Test 1
Test 2

It would make more sense to be reverted to what you see when you click on "compare", no? Because now, it is reverted not to what you see in compare, but the save just before.

I hope I make my point clear...
@Meaz I tested it in more detail like you, and i agree with your point. It doesn't feel logic the way it is now.
Distributed Troll-blockers

!Hubzilla Support Forum

Hi there, we now meet Simon the Troll and we now have to deal with blocking a user. I recall there are ways to block a user from my hub but I realize that we all need to discover Simon and block 'em separately on each hub.

So, here is my thought; is there a need for a distributed blocking mechanism or at least a kind of warning mechanism. Before we even reach world domination we will eventually stumble on our first threatened user, the first sexual abuse, the first fraud and in this case there is not a single point to contact, each and every one of us must both discover the problem and block it. Thinking of it many face-book frauds would work here too (like pretending being a friend on vacation with a stolen wallet and passport) but I am not as highly specialized on Hubzilla as the techs are on face-book.

I realize this need to be scrutinized and done with delicate care, we would like to distribute an indication of a troll but not start a bad reputation because of an misunderstanding.

Perhaps we need to do some strategic and philosophical thinking here?

@Michael MD said "my comment was about the worry about much more serious and very real network-wide threats like automated spam or organised trolling
(by "organised" I mean someone hiring lots of people to do some kind of deliberate trolling - a nasty kind of threat that has been seen in places like facebook in recent years)

A while ago I had an elgg server which became totally inoperative because of these trolls who filled the blog without substance and added links that went to their interests. I could not cope to erase their intrusions.
If these people learn how to fill our streams with garbage, then we're screwed.

The second problem the only solution I see is educating. Unfortunately the lynchings exist and I am pessimistic that they disappear, we can try to mitigate them.

Sorry, I'm sorry I did not understand the problem and stay on the surface.
As long as you choose a privacy role besides 'social -federation', everything you see in your stream is the result of you personally allowing it. You can also personally disallow it. If you choose 'social-federation', you give up this control and your privacy.  Unfortunately this is the choice that every other decentralised communication software provider has made. And nobody questions this because they find it convenient to 'follow tags' and comment on posts of people you've never met. With this convenience comes the ability to spam the entire federation/fediverse.

The entire reason (and I've said this before) for the rise of the 'social network' in computer history is because of email spam. People needed a safe place to communicate only with friends and without all the advertising noise. Now, Facebook and other "social networks" are one of the largest sources of advertising noise and unsolicited/undesired communications. Email has been given to the wolves - nobody is seriously fighting email spam any more.

If you don't learn from history you are doomed to repeat it.

If you want to keep your exposure to spam at a minimum, turn off or disable the public stream and set your privacy role to something besides 'social-federation'.  Then the only way you are going to see unwanted stuff is "friends of friends" and public forums. Public forums can remove members and even disable automatic joining (this is new), but in an extreme case you may be forced to disconnect from or block the forum. You can still communicate with your immediate friends, and the site admin doesn't need to become a 'nanny' or 'censor' for their members. You're in control of your own stream. This is really the only solution which can ever actually work. If you allow unfiltered and unrestricted communications from anybody in the world, ultimately that's exactly what you're going to get.
  last edited: Wed, 23 May 2018 07:23:16 +0200  
We are looking into Robotic Process Automation (RPA) in the public sector, and if we are, so are spammers. RPA lowers the bar for becoming an advanced spammer, i.e. more will appear as long as there is a profit. Put simply, RPA is the modern form of the Windows 3.1 Macro Recorder utility, you record a script of user actions, then replay it like a robot to automate boring tasks a human would do, and today this includes combining / stringing together normal GUI and browser automation, OCR and image recognition, as well as working with APIs across networks. RPAs are available as commercial platforms - proprietary and FLOSS - or at no cost on Github, with support for general purpose programming languages like Python for their automation scripts to leverage a vast number of Python libraries like sentiment analysis. All this means sofisticated automated spamming of your social stream from a botnet of fake accounts is a script kiddie away, and the only way to stop it from infecting you is by using a digital prophylactic like Mike suggests to be safe.