cover photo
Mike Macgirvin
Mike Macgirvin
 High Range, Australia 
There's definitely a perception problem here. And it isn't completely solved by server roles. Inevitably somebody is going to try to use a 'standard' hubzilla server who really really doesn't belong in that configuration.

So as I've been implementing different ways of working intelligently with server roles, it struck me that a lot of perception problems could be solved by having a 'member-defined' complexity setting. Such a thing would start at 0 which would more or less mimic the UNO or basic server role. If the server role is 'basic' that's the end of the story.

For other server roles, you could indicate in your settings how comfortable you are with technology in general and this would open up various other features - and even access the feature page itself.  Some additional features and settings would become visible as this number increased - and it would even do away with the expert "feature" entirely. You also wouldn't be able to select a custom/expert permission role unless your complexity setting allowed it.

Anyway, just brainstorming here. Is this something worth pursuing - or does it just add more complexity?
Andrew Manning
The complexity setting is an interesting idea, but I don't think I agree with the motivation and need for it. We all understand that if you want sophisticated privacy and permissions capability, there is a minimum level of complexity you have to deal with using the software. It makes the most sense to provide controls to the hub admin instead of members; the hub admin is assumed to know what is best for the community or organization for which he is running the hub. We should provide hub admins with enough documentation to understand the different server roles and trust that they will choose the one that best suits their purposes. The different server roles are already hard enough. I think the extra complexity required to the Hubzilla code and supporting the potentially wide variation in configurations at the per-member level could be a bad combination.
Mike Macgirvin
Just to play devil's advocate, I can't invite my mum to join Hubzilla - she would run away screaming at how hard it is. I'm willing to help her, but my server is running pro, and my test server is running standard. If she ends up on an uno site somewhere I can't help her when she inevitably gets into trouble.

We all understand that if you want sophisticated privacy and permissions capability, there is a minimum level of complexity you have to deal with using the software.

Agreed. But the average person doesn't give a pimple on a dimple on a red ant's chin about privacy and permissions. And complexity is more terrifying to them than seeing Donald Trump naked.
Mike Macgirvin
 High Range, Australia 
Here's what I love about open source (sarcasm on)...

Would you like $10? Here it is. It's free. Take it.

(I don't want $10. But maybe if it was $20 I'd reconsider).

Here's $20.

(Thanks but I only accept Malaysian currency).

Here it is in Malaysian.

(Can you direct deposit it to my account?)

OK, give me the details.

(I got the money and the bills were wrinkled. They weren't un-circulated. You're a dickhead. Nobody wants your money. Especially me. I'm telling all my friends what a dickhead you are. Goodbye.)
Haakon Meland Eriksen
I complained about the same thing today going to work. We have a person which is a contributor yet somehow manages to make everyone feel like they have let her down because any detail is of equal negative importance in her head and should have been fixed beforehand through mindreading.
Mike Macgirvin
 High Range, Australia 
Heads up: If Diaspora stops working for anybody on the dev branch, visit admin/site and set your server role to 'standard' and then re-enable the plugin. I don't think this will happen, but it's possible - and if it's possible, Murphy says it will happen to somebody.
Mario Vavti
  last edited: Thu, 25 Aug 2016 20:37:22 +1000  
In practical terms, most folks will be using the 'standard' server role.

'basic' removes nomadic identity and a lot of features to better federate with other networks.  

'pro' will be removing cross-network federation completely so that nomadic identity works perfectly, and also will not allow ratings to be disabled.  

'standard' lies in between these extremes and provides the most freedom and choice for the typical hub owner and member.
Michael Meer
ok thanks
Mike Macgirvin
 High Range, Australia last edited: Thu, 25 Aug 2016 13:59:30 +1000  
So you can now do this in Comanche:
  1.  [if $config.system.server_role == basic]
  2. a widget appropriate for basic
  3.  [else]
  4.  ... show a different widget
  5.  [/if]
  8.  [if $config.system.perms {} view_naked]
  9.  ...this site has the view_naked permission implemented
  10.  [/if]

And you can also do this in a template - ANY template

  1.  {{if $z_server_role == 'pro'}}
  2.  ... do something
  3.  {{/if}}
Haakon Meland Eriksen
Andrew Manning
This is really cool stuff and quite advanced capability. It is safe to say that for a long time now, the capability and complexity of the website elements and identity-aware webpage system has far outpaced anyone's actual usage of this system. A robust set of accessible examples is sorely needed if there is any realistic hope of these tools being used and, by their popularity, developed to satisfy the needs of web developers who understand the unique abilities of Hubzilla. My work on the website portation tools is specifically to start bridging this gap, but we need exemplary content for explorers to import.
@Andrew Manning yes, you are right. I have got the beginnings of an example hub & website lying around with some demo stuff for various identities, incorporating the websites etc. Now the WIki should follow. That too will be just scratching the surface, but once I have developed that demo site far enough with some crazy, hopefully a little bit humorous content, showcasing some of Hubzilla's colaboration capabilities in the direction of internal & external & customer accounts etc.

I am still at the beginning, but it's quite fun.

And maybe, with the new website portation tool this might be a nice place to start for beginners.

Need to think about it. Maybe this could be a special showcase installation flavour imported via an sql dump file.

This is still in its infancy but I have been thoroughly enjoying creating some first steps on my internal off-the-grid hub. :)
Mike Macgirvin

Hubzilla Governance

 High Range, Australia 
I will be crafting some more or less official governance documentation over the coming days/whatever. Basically we need to fully document how the project deals with conflict resolution. This is a critical requirement of any open source project. I've been researching current open source governance procedures/docs as well as gathering insight from other 'open governance' structures such as eco-villages and intentional communities. There's been a bit of bad blood spilled over the years because our processes were somewhat ad hoc in this regard.  

What I'm actually proposing is something that to my knowledge hasn't been attempted before - 'virtual forks'; with potentially different governance models. Our soon to be three server roles (basic, standard, and pro) correspond to completely different audiences and different rules of governance. I'm proposing that basic and standard are governed by the community as a meritocracy (or perhaps a pure democracy(*)), and pro becomes a benevolent dictatorship.

(*) Diaspora has essentially a pure democracy and this seems to result in a lot of down-voted decisions and a general failure of the project to progress at more than a snail's pace. Most open source communities have a meritocracy with a central council of chosen constituents (with defined rules for appointment therein), 'lazy consensus' (if no serious objections are raised - don't take it to council for debate/voting - just do it), and a defined process for re-negotiating blocked decisions.

As a meritocracy, both Mario and myself will have block/veto rights on any community decision; as we have the most invested interest in the code. Mario primarily to prevent bad UI/UX decisions, and myself to prevent bad decisions period. But where 'virtual forks' comes into play is that I'm willing to drop any block/veto and turn it into a normal vote if the request is made and the feature implemented in such that it has no affect on the 'pro' configuration. At this point it becomes purely a community decision, as the community or community council completely controls the 'standard' server role. I may be asked (as has happened recently) to completely remove a feature from the standard configuration. The community may also decide that some feature I created isn't suited for the community and ask me to restrict it to 'pro', or vice versa.

This has all of the benefits of a server fork with none of the drawbacks. We're all still working on the same project and any effort is shared. At the same time, each configuration is free to drift into realms that are fundamentally at odds from the other configurations. The only downside is 'yet another choice to be made'; but if these were actual forks this would be a much harder decision as you would be installing a completely different code base, developers would be split and some patches and bug fixes won't have been implemented in all the forks.

In practical terms, most folks will be using the 'standard' server role. 'basic' removes nomadic identity and a lot of features to better federate with other networks.  'pro' will be removing cross-network federation completely so that nomadic identity works perfectly, and also will not allow ratings to be disabled.  'standard' lies in between these extremes and provides the most freedom and choice for the typical hub owner and member.
Seth Martin
You're good at making things work that haven't been attempted before and I like your proposal. It gives me relief knowing that you're conscious of diaspora*s pure democracy issue. I beg of you, please don't let the 'standard' server role's progress be stifled by a pure democracy.
giac hellvecio
pure democracy, I do not know if that's the right word, but I agree, more than anything else there is always need an orchestra conductor, otherwise it turns into one casino....
Mike Macgirvin
But, but...

How the community organises itself isn't really up to me to decide. I'm just mentioning that different governance structures have different side effects and I only intend to clarify my own role in the project and where it intersects with community governance.

Then there's going to be a big blank section with

this is going to be filled in by the community after they come to consensus on a governance structure

In the absence of any documented community governance it's going to default to pure democracy beneath a benevolent dictatorship, as I will be able to veto anything; but I have no interest in managing the project or community. I'd rather die in a vat of boiling oil frankly. This arrangement provides at least some form of governance until the community comes to agreement on how they want to organise and provides/publishes the relevant documents.

Pure democracy just doesn't work well with open source and hence isn't a common governance structure in that realm. Council governance seems to be quite popular in open source and has a good track record. Anybody at all can weigh in and provide opinions, but the final decision is left in the hands of a select few that have shown an ability to work together and arrive at a good and equitable decision; which doesn't create a lot of bad feelings when somebody's proposal inevitably gets knocked back. It lets several experienced and knowledgeable people try to come up with an equitable work-around that's a win-win for everybody.

Ultimately, vetoed decisions can be resolved by creating a fork, but forks are lose-lose for everybody. A virtual fork provides a way to incorporate even the toughest conflicts and keep everybody working together. It still might have problems with license conflicts, but can accommodate most everything else.
Mike Macgirvin
 High Range, Australia 
You'd probably think - whoa who are these curmudgeons ?

The Wild Ones - The Best Way To Jive
by MichelV6 on YouTube

These dudes wrote one of the most definitive rock-n-roll songs of all time. To wit:

Wild Thing - The Wild Ones
by Jorge on Vimeo

In the Wind
Interesting that they did that song in 65 yet it got famous only a year later by being done by the Troggs and other bands went on to cover it also. I'm guessing back in the day there was no laws about that? Same song, year apart, two diff bands and one getting famous off it?
Mike Macgirvin
 High Range, Australia 
If you can figure out how to merge 1.12RC into master (or else reset master to 1.12RC head) - go for it. I've got nothing but unresolvable merge conflicts from hell.
Andrew Manning

Congratulations on releasing Hubzilla 1.12!

Also, I'm glad that I didn't see any of this until it was resolved, sheesh. Git never ceases to confound.

* 8aee932 (upstream/master, origin/master, master) version
*   8b737e9 (tag: 1.12) Merge branch 'master' into 1.12RC
| * 0b16a55 Revert "Merge branch '1.12RC'"
| * b7fbd0e Revert "missing release file"
| * 2afdb78 Revert "more missing files from merge"
| * 1bd784c more missing files from merge
| * 17fa2d8 missing release file
| *   b89c869 Merge branch '1.12RC'
| |\  
| |/  
* |   1a506ad (upstream/1.12RC, origin/1.12RC, 1.12RC) Merge branch ...
|\ \  
| * | f4507d8
Mike Macgirvin
Might be a good idea to figure out what kinds of things might go wrong. The Hubzilla community will be crafting the next release. I hope they do a better job at this than they do advertising and promotion. Otherwise it could get "interesting".
In the Wind
Write HUBZILLA  across the chest of naked women and put up the posters in coffee shops? That could work...
Mike Macgirvin
 High Range, Australia 
ubuntubsd - UbuntuBSD


The power of FreeBSD kernel with familiarity of Ubuntu OS.. UbuntuBSD Brings Ubuntu And FreeBSD Together! UbuntuBSD is an operating system built using rock solid FreeBSD kernel. UbuntuBSD is a free, complete, and open-source alternative to Windows and Mac OS X which contains everything you need to work, play or share. Check out the Feature Tour if ...
Beni Grind
Isn't this exactly what Debian gave up because systemd-integration was too difficult? What init-system does this use, is Ubuntu still sticking with upstart?

For my part I prefer to stick with a FreeBSD userland on the FreeBSD kernel. Usually the reason I use Linux instead of FreeBSD is hardware support which mostly depends on the available drivers in the kernel.
Mike Macgirvin
A lot of folks say that package management is kind of anti-bsd and I do tend to agree, but package management on top of bsd is a lot more pleasant way of putting a working system together than building ports. I haven't yet looked at the init system, but I believe it's probably upstart (it's behind a friewall currently so I can't verify). I'm OK without systemd. Anyway it's an evaluation. I might toss it, but from first impressions it's nicely done. Other internet commenters suggest that this isn't an official canonical project, so it's a bit dubious and might just fail on its own.
Beni Grind
I rarely build from ports these days. My package management need are mostly covered by pkg-ng, I only compile from ports if I need a newer version than what's available as binary package.
Mike Macgirvin
 High Range, Australia 
“My whole wretched life swam before my weary eyes, and I realized no matter what you do it's bound to be a waste of time in the end so you might as well go mad.”
― Jack Kerouac
giac hellvecio
if it were not for the drinks so different I could swear that was my niece  with a friend.
Mike Macgirvin
 High Range, Australia 
Something for the to-do list....

We've discussed this before, but it's taking on new urgency now that you can drag/drop links to posts and comments and drag/drop photos to posts. We need to drag/drop photos/files to comments and have a button to attach a file/photo to a comment.

In past discussions it seems that the necessary check is that to do this, the channel's default view_files permission needs to be 'anybody on the internet' or we're going to get lots of forbidden signs (commenters cannot control the distribution, only the original poster can). We can also add a preference that says "regardless of my privacy settings, if I upload a photo into a comment, just make it public so people don't send me butthurt".
Haakon Meland Eriksen
Is there an easy way to expire photos in the photo table?
Andrew Manning
Are you worried about wasted storage? I was imagining that the files in the comment upload folder would be deleted when the post was deleted, either through manual or post expiration settings.
Haakon Meland Eriksen
Yes, storage.
Mike Macgirvin
 High Range, Australia 
There were some issues but we now accept theme settings in the form "theme:schema" in dev. This allows you to use schemas for system/default themes; which was problematic before. There's a bit of a change in how themes list their available schemas (and which also brings object classes to theme configuration, where they are sorely needed). I've patched redbasic but I don't know if other themes use schemas. we may need to create a small block of code to list the available schemas for those that do. See view/theme/redbasic/php/config.php (in dev).
Mike Macgirvin
There's also a lot of work ahead to pull this off in a way that is logically elegant and that won't cause puzzlement with new members; and I don't see it all happening before 1.14; in fact it might be a stretch to make it into 2.0.

- We MUST tie the schema selection to the currently selected theme with javascript.
- We MUST dynamically tie the theme specific settings to the currently selected theme with javascript (or put them on a different page completely).
- We MUST provide theme preview, perhaps replacing the sample screenshot.

- This will probably require a lot of refactor of theme settings, for instance the preview requirement means we can't really store each setting separately. We probably need to store an array so that we can load all of them in one call and store them under a different name temporarily (perhaps something like redbasic.preview_settings and redbasic.settings).

- Somebody MUST volunteer to develop all these bits, or this simply won't happen.
Andrew Manning
I'm not really keeping up with this topic, but I see a lot of bold MUST statements. Can one of you capture this needed work in the Development Tasks wiki page? I'm hoping that will be a resource we can reference as well as interested developers looking for stuff to do. I copied this last bit verbatim but it probably needs a better summary.
Mike Macgirvin
To summarise: Settings->Display has a number of quite serious usability issues.
Mike Macgirvin
 High Range, Australia 
Does it change your outlook on life if you discover you're a not-so-distant cousin to Princess Anastasia, Queen Victoria,  and Jimi Hendrix?

Asking for a friend.
Only if I got some big inheritance coming out of it. hehe
Haakon Meland Eriksen
1st, 2nd, 3rd degree?
Mike Macgirvin
So Queen Victoria is related to Jimi Hendrix, and if it wasn't for my friend there would be no connection. Suddenly my friend becomes important.
Mike Macgirvin
 High Range, Australia 
Hubzilla 1.12RC

We will probably lengthen our development cycles going forward (two weeks of development and two weeks of test is sort of pushing the limits of sanity), but we're looking at a 1.12 release approximately Aug 24, subject to further evaluation and testing. If you are able, please test. The permissions changes and ACL changes were quite dramatic and we've already uncovered a couple of issues. On the bright side, for such dramatic changes; we've *only* uncovered a couple of issues.

Mike MacgirvinMike Macgirvin wrote the following post Thu, 11 Aug 2016 10:34:58 +1000
1.12RC is pushed. I haven't gotten to the release notes yet, but the highlights are

- extensible permissions so you can create a new permission rule such as "can write to my wiki" or "can see me naked".
- guest access tokens can do anything you let them, including create posts and administer your channel
- ACLs can be set on files and directories prior to creation.
- ACL tool can now be used in multiple forms within a page
- a myriad of new drag/drop features (drop files or photos into /cloud or a post, or drop link into a post or comment, etc.)
- multiple file uploads
- improvements to website import
- UNO replaced with extensible server roles
- select bbcode elements (such as baseurl) supported in wiki pages
- addons:
    Diaspora Protocol - additional updates to maintain compatibility with and stop showing likes as wall-to-wall comments (except when the liker does not have any Diaspora protocol ability)
    Cdav - continued improvements to the web UI
    Pong - the classic pong game
    Dfedfix - removed, no longer needed
    Openid - moved from core to addon
- bugfixes
    unable to delete privacy groups
    weird display interaction with code blocks and escaped base64 content containing 8 - O
    workaround WordPress oembeds which are almost completely javascript and therefore filtered
    restrict oembed cache url to 254 chars to avoid spurious failures caching google map urls
    "Page not found" appeared twice
    birthdays weren't being automatically added to event calendar
    some iCal entries had malformed descriptions
Mario Vavti
Ok... seems to be an translation issue... If changing the language to en it works...
Mike Macgirvin
The string "Error getting photo link" is inserted into a template with single quotes and the Italian translation is "Errore nell'ottenere il link alla foto" (containing an unescaped single quote). I've patched dev, 1.12RC and master to use a double quoted string. Ideally since these strings are only used in Javascript, they should probably be defined in js_strings, where a single quoting style is used. That won't eliminate the issue but would provide a single place to fix it. Otherwise any template which uses a particular string might have to be located and checked for quoting style and potentially makes a simple issue quite complicated; since you can't determine in advance which strings may have translations with single or double quotes in them.
Thank you a lot guys! <3
Mike Macgirvin
 High Range, Australia last edited: Fri, 12 Aug 2016 15:25:39 +1000  
@Mario Vavti I think we may have a problem with multi-acl. It doesn't seem to be including jotnets (plugin connectors and stuff) in the form data. A side effect of this is that if you have the nofed addon installed (as I do), things stop getting delivered because there's no form element to say that federation is enabled.

Anyway I've turned the nofed plugin off so I can get posts out. We'll have to apply a fix to the 1.12RC branch also (I'm guessing everybody missed that post).
Mario Vavti
  last edited: Sat, 13 Aug 2016 01:54:52 +1000  
I just opened a pullrequest with a quickfix. I hope it will help this issue. I think though we should implement jotnets with jot at the end... Thats the only place they are needed iirc...

Actually i think they where in jot before and i moved them to acl at some point thinking face
Mike Macgirvin
That works - thanks. I agree we should probably move it out of the ACL completely.
Mario Vavti
Glad it works. Thanks for moving the fix to 1.12RC
I think you should repost the 1.12RC anouncement. I don't think anybody got it...
Mike Macgirvin
 High Range, Australia 
Read this:

Then read this:

Video games are now so smart they're simulating entire universes


Video games have advanced so far that an entire universe worth of stars, planets and moons can be simulated in-game.
  last edited: Sat, 13 Aug 2016 09:35:42 +1000  
I think, therefore... the player must be in the vacinity
Mike Macgirvin
 High Range, Australia 
"All I do is tell the truth. I'm a truth-teller."
-- Donald Trump

Q: Why did you just spit coffee across the room?